jbox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
for (int x = 0; x < string.length; x++) {
if (jbox.getSelectedItem() == string[x]) {
System.out.println(string[x]);
}}}});当我运行此命令时,它会打印两次。我做错了什么?(为我糟糕的英语道歉)
发布于 2015-01-24 22:33:28
ItemListener将跳转两次,因为一个项目被取消选择,而另一个项目被选中。考虑使用ActionListener。
但是请注意,您不应该使用==或!=比较字符串。请改用equals(...)或equalsIgnoreCase(...)方法。要知道,==会检查这两个对象是否相同,而这不是您感兴趣的。另一方面,这些方法检查两个字符串是否具有相同顺序的相同字符,这才是关键所在。因此,不是
if (jbox.getSelectedItem() == string[x]) {做
if (jbox.getSelectedItem().equals(string[x])) {https://stackoverflow.com/questions/28126548
复制相似问题