ItemListener println双输出

时间:2015-01-24 14:30:39

标签: java swing println itemlistener

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]);
                }}}});

当我运行它时会打印两次。 我做错了什么? (抱歉我的英语不好)

1 个答案:

答案 0 :(得分:2)

由于取消选择了一个项目而选择了另一个项目,因此ItemListener将跳闸两次。考虑使用ActionListener。

请注意,您不应该使用==!=来比较字符串。请改用equals(...)equalsIgnoreCase(...)方法。理解==检查两个对象是否相同而不是您感兴趣的。另一方面,这些方法检查两个字符串是否具有相同的字符相同的顺序,这是重要的。而不是

if (jbox.getSelectedItem() == string[x]) {

if (jbox.getSelectedItem().equals(string[x])) {