我想从20个java组件中获取值10是jtextfields,10个是jcombobox,其变量名不是setName()。
这些组件以行格式放置,表示jtextfield1,然后是cmbbox1,然后是jtextfield2,然后是cmbbox2,依此类推。 现在我想循环遍历这些组件并逐个获得它们的价值,就像它们被放置为jtextfield1的值,然后是cmbbox1的值然后依此类推。
我尽力找到答案,但一切都在静脉中。等待你的好回应。
答案 0 :(得分:1)
由于您希望保留插入顺序,因此可以使用ArrayList。
您可以执行以下操作 -
List<JComponent> jComponentList = new ArrayList<>();
//add components
for(int i=0;i<10;i++){
JTextField textField = new JTextField();
JComboBox comboBox = new JComboBox();
textField.setName("textField" + i);
comboBox.setName("comboBox" + i);
jComponentList.add(textField);
jComponentList.add(comboBox);
}
//iterate to get values
for(JComponent component : jComponentList) {
if(component instanceof JTextField) {
System.out.println("textField Name is " + component.getName());
}
else if(component instanceof JComboBox) {
System.out.println("jcomboBox Name is " + component.getName());
}
}