Java Swing - 动态创建JTextField

时间:2016-04-14 20:23:25

标签: java swing jtextfield

我想创建几个JTextField,然后我们可以在他们点击提交按钮后获取用户数据。我使用下面的代码动态创建文本字段的标签,并计划以类似的方式创建文本字段,但我意识到,如果我这样做,字段不会有变量名称,我赢了&#39 ; t能够提取数据。有没有办法动态分配变量名称或以其他方式从文本字段中检索数据,如果我以类似于下面显示的方式创建它们?

    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++;
    }

1 个答案:

答案 0 :(得分:4)

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

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();