Java Swing - 动态创建 JTextField
Java Swing - Dynamically create JTextField
我想创建几个 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);
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();
我想创建几个 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);
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();