Java Swing - 动态创建JTextField

标签 java swing jtextfield

我想创建几个 JTextFields,然后一旦用户点击提交按钮,我就可以从中获取用户数据。我正在使用下面的代码为文本字段动态创建标签,并计划以类似的方式创建文本字段,但我意识到,如果我这样做,字段将没有变量名称,我将无法提取数据。如果我以类似于下面所示的方式创建文本字段,是否有一种方法可以动态分配变量名称或从文本字段中检索数据?

    int autoX = 0;
    int autoY = 0;
    for (int i = 0; i< units.numOfUnits(); i++ ){
        c.gridx = (autoX % 5);
        c.gridy = autoY;
        if((autoX % 5) == 4){
            autoY++;
        }
        mainPanel.add(new JLabel(units.getUnit(i)),c);
        autoX++;
    }

最佳答案

您需要保留对您创建的文本字段的引用。像这样:

List<JTextField> textFields = new ArrayList<JTextField>();
int autoX = 0;
int autoY = 0;
for (int i = 0; i< units.numOfUnits(); i++ ){
    c.gridx = (autoX % 5);
    c.gridy = autoY;
    if((autoX % 5) == 4){
        autoY++;
    }
    mainPanel.add(new JLabel(units.getUnit(i)),c);
    JTextField textField = new JTextField();
    mainPanel.add(textField);
    textFields.add(textField);
    autoX++;
}

然后您可以使用以下方式引用特定文本字段:

textFields.get(0).getText();

关于Java Swing - 动态创建JTextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36633266/

相关文章:

java - 交易中止

java - Arquillian 集成测试 - 当 Wildfly 的其他实例正在运行时无法运行测试

java - 使用 ActionListener 从一个 JFrame 跳转到下一个不起作用

java - 在 JLabel 上画线

java - 我如何在 JTabbedPane 的选项卡中添加 JScrollPane

java - JButton 和 JTextField 的连接?

java - 移动窗口时OpenGL停止绘制lwjgl

java - 如何检查一个单词是否包含一个字母或一组字母?

java - 强制 JTextField 为字符串值,而 DocumentFilter 只允许数字

java - 如何获取 JTextField 的真实 x 和 y 坐标