通过JFrame进行数据传输

时间:2014-01-13 23:26:02

标签: java swing jframe jcombobox actionevent

我的JFrame很少。使用其中一个(它包含textBox)我想将输入数据传输到另一个类中的变量。此变量用于构建JComboBox选择列表。我尝试通过JButton传输输入数据,但最终没有传输任何内容,JComboBox保持空白。我需要以某种方式刷新JComboBox或其他东西吗?我的代码:

...
DataBase toTable = new DataBase();
...

button.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent click) {

                toTable.data[0] = textField.getText();

                }           
});

DataBase类的变量:

....
String data[] = {"","","","",""};
....

And the Main Class (it contains JComboBox):

...
DataBase data0 = new DataBase();
final JComboBox list0 = new JComboBox(data0.data);
        list0.setBounds(10, 61, 110, 22);
        contentPane.add(list0);

1 个答案:

答案 0 :(得分:1)

这是对的。 JComboBox没有注意到您更新了阵列。您需要使用JComboBox的addItem或setModel方法。

button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent click) {
        toTable.data[0] = textField.getText();
        list0.setModel(new DefaultComboBoxModel(toTable.data));
    }           
});

当然,除非您可以在与按钮相同的范围内引用list0,否则此代码将无法运行。如果可能的话,我建议将button和list0放在同一个类中。