0

我需要删除我的 JComboBox 中的所有元素,使用 .removeAllItems() 它可以正常工作!但是我注意到有一个小问题,也许是一个错误?我不知道。

如果我让 JComboBox 打开,然后尝试删除所有项目,则会引发异常:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0

我尝试在调用 removeAllItems 之前关闭弹出窗口,如下所示:

private void removeAllClassesAvailable() {
        classeComboBox.hidePopup();
        classeComboBox.removeAllItems();
}

但是还是没有成功!

也许是因为我的 JComboBox 在 JTable 中?

4

2 回答 2

2

看起来添加到组合框的侦听器之一试图处理选择。在删除项目之前尝试从组合中删除侦听器并在之后读取。

于 2013-06-02T08:11:44.187 回答
0

尝试放置一个全局变量 boolean 以避免控件不断触发新事件:

public static boolean avoidNewEvents;

.............

private void 
    jCBoxSubCategoriaActionPerformed(java.awt.event.ActionEvent evt) {                                                  
    // ComboBox 
    //
    if (Form.avoidNewEvents==false) return;
    .............

      //Avoid new events to fire recursively
      FORM.avoidNewEvents=false;

       /  
       jCBoxSubCategoria.removeAllItems();

     //Reset:
     FORM.avoidNewEvents=true;
于 2017-10-30T05:37:59.913 回答