我的问题是必须能够向组合框添加和删除项目。这些项目可以是重复的。 我设法添加它们:
jComboBox1.addItem(dodatek);
先删除:
if (jComboBox1.getItemCount() > 0) {
jComboBox1.removeItemAt(0);
或选择一个:
if (jComboBox1.getSelectedItem() != null) {
jComboBox1.removeItemAt(jComboBox1.getSelectedIndex());
删除所有项目时会出现问题,其中一项是重复的。 在这种情况下,即使列表为空,最后一项仍然在组合框中被选中! http://imgur.com/sMf2HWg
它还会在尝试删除所选项目时抛出异常:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: -1
at java.util.Vector.removeElementAt(Vector.java:562)
at javax.swing.DefaultComboBoxModel.removeElementAt(DefaultComboBoxModel.java:152)
at javax.swing.JComboBox.removeItemAt(JComboBox.java:759)
仅当删除存在重复的项目
时才会发生这种情况答案 0 :(得分:2)
选择项目和选定索引显然并不意味着相同的事情。如果所选索引是!= -1,则需要检查它是否在调用remove之前。
所选项目是在框中选择的值,所选索引是列表中选定的索引。