我的问题必须能够向组合框添加和删除项目。这些项目可以是重复的。 我设法添加它们:
jComboBox1.addItem(dodatek);
首先删除:
if (jComboBox1.getItemCount() > 0) {
jComboBox1.removeItemAt(0);
或选择一个:
if (jComboBox1.getSelectedItem() != null) {
jComboBox1.removeItemAt(jComboBox1.getSelectedIndex());
删除所有项目且其中一项重复时会出现问题。 在这种情况下,即使列表为空,组合框中的最后一项仍保持选中状态! /image/rgYP4.jpg
尝试删除所选项目时也会引发异常:
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)
只有在删除重复项时才会发生这种情况
最佳答案
选定的项目和选定的索引显然不是同一件事。在调用删除之前,您需要检查所选索引是否为 != -1。
选定的项目是在框中选定的值,选定的索引是在列表中选定的索引。
关于java - Swing:JComboBox 删除/添加重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29317037/