0

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

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

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

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

                }           
});

来自数据库类的变量:

....
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);
4

1 回答 1

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 放在同一个类中。

于 2014-01-13T23:38:20.050 回答