我正在使用字符串数组来填充项目组合框。选择项目并按按钮提交后,我希望它从组合框中删除该项目。我的尝试是首先从字符串数组中删除选定的项目,从组合框中删除所有项目,然后用字符串数组重新填充它。
choice 是字符串数组,cboChoice 是组合框,strChoice 是要删除的项目
for(int i = 0; i < choice.length; i++) {
if(choice[i].equals(strChoice)) {
choice[i] = null;
cboChoice.removeAllItems();
cboChoice.addItem(choice);
}
}
据我所知,我不知道是否有更简单的方法可以做到这一点,但我似乎无法让它发挥作用。
由于您有一个字符串数组和一个 JComboBox,它们具有相同顺序的相同项目,因此您可以使用 JComboBox.getSelectedIndex()
来检索所选项目的索引位置并从 JComboBox 中删除,然后您就得到了数组。
作为建议,我会将您的 String 数组设置为 ArrayList,它是一个“更智能”的动态数组,并且可以与您的 JComboBox 保持更好的同步。另请确保先从数组中删除,然后再从 JComboBox 中删除,否则所选索引可能会更改。
ArrayList 声明如下所示:
ArrayList<String> choice = new ArrayList<>();
将您的内容添加到此列表中,如下所示:
choice.add(yourChoice);
删除项目如下:
if (cboChoice.getSelectedIndex() > -1) {
choice.remove(cboChoice.getSelectedIndex());
cboChoice.getSelectedIndex();
}
希望这会有所帮助...另外,一旦您了解了其工作原理,我建议您学习 ComboBoxModel。某些 Swing 控件具有模型对象,您可以使用它们来添加/删除/修改内容,而无需引用实际控件。
我是一名优秀的程序员,十分优秀!