public void jComboBox1_actionPerformed(ActionEvent e) {
      System.out.println("a");
  }代码如上,在用户按下Enter键后,打印"a" .但是为什么该事件会连续执行两次,打印出两个"a".我在其它地方并没有让它打印啊,难道java本来就是这样的吗?恳请大虾们指教!!

解决方案 »

  1.   

    需要加判断,这个事件还个标识为,表示的当前是选中还是取消选中,所以会执行选中一次的操作,还会执行取消选中的,一次操作。如下解决,使用ItemListener的itemStateChanged:    jComboBox1.addItem("111");
        jComboBox1.addItem("222");
        jComboBox1.addItemListener(new ItemListener() {
          public void itemStateChanged(ItemEvent e) {
            jComboBox1_itemStateChanged(e);
          }
        });
      public void jComboBox1_itemStateChanged(ItemEvent e) {
        System.out.println("e.getStateChange()==" + e.getStateChange());
        if (e.getStateChange() == e.SELECTED) { //这里控制为只处理一次
          System.out.println("选中了");
        }
    //    if (e.getStateChange() == e.DESELECTED) { //这里控制为只处理一次
    //      System.out.println("选中了");
    //    }  }顺手google了一次,搜索到我是在20个月前问过这个问题,呵呵