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]);
}}}});
当我运行它时,它会打印两次。 我做错了什么? (抱歉我的英语不好)
最佳答案
由于取消选择一项并选择另一项,ItemListener 将触发两次。考虑使用 ActionListener。
请注意,您不应该使用 ==
或 !=
来比较字符串。请改用 equals(...)
或 equalsIgnoreCase(...)
方法。了解 ==
检查两个对象是否相同,这不是您感兴趣的。另一方面,方法检查两个字符串是否相同字符的顺序相同,这就是这里最重要的。所以而不是
if (jbox.getSelectedItem() == string[x]) {
做
if (jbox.getSelectedItem().equals(string[x])) {
关于java - ItemListener println 双输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28126548/