JTable中的celleditor用jcombobox来实现,然後在jcombobox上面添加ItemListener,为什么这个监听会执行两遍  大家可以试试   不是个别代码问题

解决方案 »

  1.   

    itemStateChanged 中两个子事件(取消选中,和选中),所以一般会触发两次, 
    需要加判断, 这个事件还个标识为,表示的当前是选中还是取消选中, 所以会执行选中一次的操作,还会执行取消选中的,一次操作。 如下解决,使用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("选中了"); 
    // } } http://topic.csdn.net/t/20060117/18/4521936.html      你看看能用得上不,我碰到过,估计就是一个事件状态问题,下面应该是那时的引用吧,我的javaeye blog上记录过
      

  2.   

    高手   謝謝了哈    我是在監聽里面執行到最后把item的listener去掉   然後再添加一個focus的listener   再把itemListener加上  ,這樣也可以了  不過還是您的方法好~   謝謝  謝謝
      

  3.   

    高手   謝謝了哈    我是在監聽里面執行到最后把item的listener去掉   然後再添加一個focus的listener   再把itemListener加上  ,這樣也可以了  不過還是您的方法好~   謝謝  謝謝
      

  4.   

    高手   謝謝了哈    我是在監聽里面執行到最后把item的listener去掉   然後再添加一個focus的listener   再把itemListener加上  ,這樣也可以了  不過還是您的方法好~   謝謝  謝謝
      

  5.   

    高手   謝謝了哈    我是在監聽里面執行到最后把item的listener去掉   然後再添加一個focus的listener   再把itemListener加上  ,這樣也可以了  不過還是您的方法好~   謝謝  謝謝