【问题标题】:Exception Removing all Combo Box Items with JComboBox Open在 JComboBox 打开的情况下删除所有组合框项目的异常
【发布时间】:2013-05-28 12:55:47
【问题描述】:

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

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

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

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

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

但还是没有成功!

可能是因为我的 JComboBox 在 JTable 中?

【问题讨论】:

  • 你能显示抛出异常的那一行吗?
  • 希望有人能尽快回答这个问题。如果没有,请考虑添加更多信息和代码,最好是sscce

标签: java swing jcombobox removeall


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    尝试放置一个全局变量 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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-07
      • 2011-03-01
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      相关资源
      最近更新 更多