根据变量名获取java组件的值

时间:2013-10-12 12:25:39

标签: java components

我想从20个java组件中获取值10是jtextfields,10个是jcombobox,其变量名不是setName()。

这些组件以行格式放置,表示jtextfield1,然后是cmbbox1,然后是jtextfield2,然后是cmbbox2,依此类推。 现在我想循环遍历这些组件并逐个获得它们的价值,就像它们被放置为jtextfield1的值,然后是cmbbox1的值然后依此类推。

我尽力找到答案,但一切都在静脉中。等待你的好回应。

1 个答案:

答案 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());
        }
    }