我需要删除JComboBox上的所有元素,使用.removeAllItems()它工作正常! 但我注意到有一个小问题,也许是一个错误?我不知道。
如果我打开JComboBox,然后尝试删除所有项目,则抛出异常:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
我尝试在调用removeAllItems之前关闭弹出窗口,如下所示:
private void removeAllClassesAvailable() {
classeComboBox.hidePopup();
classeComboBox.removeAllItems();
}
但仍然没有成功!
也许是因为我的JComboBox在JTable中?
答案 0 :(得分:2)
看起来添加到组合框的其中一个侦听器尝试处理选择。尝试在删除项目之前从组合中删除侦听器,并在之后读取。
答案 1 :(得分: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;