我有一个程序的这一小部分,它使用JComboBox从中选择某个字符串。我在互联网上找到了这个代码并尝试了它并且它在当时工作但是当我尝试在选择它之后在不同的地方再次调用字符串时,它返回null。这是代码:
private class courseAL implements ActionListener{
public void actionPerformed(ActionEvent e) {
Start_round sr = new Start_round();
JComboBox cb = (JComboBox)e.getSource();
sr.CourseName = (String)cb.getSelectedItem();
System.out.println(sr.CourseName);
}
}
在这种情况下打印出正确的高尔夫球场名称,但是当我在选择它后在另一个地方尝试再次调用sr.CourseName时,它会打印出null。救命。 提前谢谢。
答案 0 :(得分:1)
在选择和取消选择时传递ActionEvent,因此第二个是在选择新项目之前取消选择一个项目。通过使用ItemListener,您可以检测事件是选择还是取消选择。
private class courseAL implements ItemListener {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
Start_round sr = new Start_round();
sr.CourseName = (String) e.getItem();
// alternate:
// JComboBox cb = (JComboBox) e.getItemSelectable();
// sr.CourseName = (String) cb.getSelectedItem();
System.out.println(sr.CourseName);
}
}
}