我的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);
答案 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放在同一个类中。