Java 将组合框中的选定项添加到DefaultListModel
我有一个组合框,可以显示餐厅中的项目,我希望能够选择项目,然后单击下面的按钮,将其添加到DefultListModel,我已经成功地做到了这一点,但我必须使用许多if语句Java 将组合框中的选定项添加到DefaultListModel,java,eclipse,combobox,jlist,Java,Eclipse,Combobox,Jlist,我有一个组合框,可以显示餐厅中的项目,我希望能够选择项目,然后单击下面的按钮,将其添加到DefultListModel,我已经成功地做到了这一点,但我必须使用许多if语句 if(comboBoxStarters.getSelectedItem() == "Sticky Chicken Wings") { selectedItems.addElement("Sticky Chicken Wings"); } if (comboBoxStarters.getSelectedItem() =
if(comboBoxStarters.getSelectedItem() == "Sticky Chicken Wings") {
selectedItems.addElement("Sticky Chicken Wings");
}
if (comboBoxStarters.getSelectedItem() == "French Onion Soup") {
selectedItems.addElement("French Onion Soup");
}
if (comboBoxStarters.getSelectedItem() == "Bacon and Salmon Brochettes") {
selectedItems.addElement("Bacon and Salmon Brochettes");
}
if (comboBoxStarters.getSelectedItem() == "Sesame Chicken Skewers") {
selectedItems.addElement("Sesame Chicken Skewers");
}
我知道你只需要几行代码就可以做到这一点,但我不记得是怎么做到的,到目前为止我已经做到了:
selectedItems.addElement(this.comboBoxStarters.getSelectedItem());
itemList.setModel(selectedItems);
但这不是编译
(selectedItems是我的默认列表模型)
(itemList是我的Jlist)
此外,上面的所有代码都在按钮操作事件侦听器中强制转换getSelectedItem()返回值
selectedItems.addElement((String)this.comboBoxStarters.getSelectedItem()); // added (String) cast
itemList.setModel(selectedItems);
此
可能仍指您的ActionEventListener
;您可能需要使用“限定this”来引用外部类的this
指针,如OuterClassName.this
getSelectedItem()
如果未选择任何项,则可以返回null
,因此最好先检查它是否为非null
Object selected = OuterClassName.this.comboBoxStarters.getSelectedItem();
if (selected != null) {
selectedItems.addElement((String) selected);
itemList.setModel(selectedItems);
}
如果(字符串的选定实例){,则更加安全。除非您完全确定组合框将只包含字符串。我假设您使用的是Java 7或更高版本。在Java 7中,DefaultListModel定义是这样的
DefaultListModel<E> model = new DefaultListModel<E>
当然
getSelectedItem()
应该返回一个类型为E的对象。编译错误是什么?这不是你的问题,但不要使用=
进行字符串比较,如果(comboBoxStarters.getSelectedItem().toString().equals(“粘鸡翅”)
selectedItems.addElement((E) this.comboBoxStarters.getSelectedItem());