Java Swing-动态创建JTextField

Java Swing-动态创建JTextField,java,swing,jtextfield,Java,Swing,Jtextfield,我想创建几个JTextFields,一旦点击提交按钮,我就可以从中获取用户数据。我正在使用下面的代码为文本字段动态创建标签,并计划以类似的方式创建文本字段,但我意识到,如果这样做,字段将不会有变量名,也无法提取数据。如果我以如下所示的方式创建文本字段,是否有一种方法可以动态分配变量名或从文本字段中检索数据 int autoX = 0; int autoY = 0; for (int i = 0; i< units.numOfUnits(); i++ ){

我想创建几个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++;
    }
intautox=0;
int autoY=0;
对于(int i=0;i
您需要保留对所创建文本字段的引用。像这样:

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

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

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

非常感谢。最后,我将该列表设置为代码所在类的私有变量,以使其他方法可以访问它,但我没有说明它位于类中。谢谢!最后,我将列表作为代码所在类的私有变量,以使其他方法可以访问它,但我没有声明它在类中。