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]);
}}}});
当我运行它时会打印两次。 我做错了什么? (抱歉我的英语不好)
答案 0 :(得分:2)
由于取消选择了一个项目而选择了另一个项目,因此ItemListener将跳闸两次。考虑使用ActionListener。
请注意,您不应该使用==
或!=
来比较字符串。请改用equals(...)
或equalsIgnoreCase(...)
方法。理解==
检查两个对象是否相同而不是您感兴趣的。另一方面,这些方法检查两个字符串是否具有相同的字符相同的顺序,这是重要的。而不是
if (jbox.getSelectedItem() == string[x]) {
做
if (jbox.getSelectedItem().equals(string[x])) {