Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将组合框中的选定项添加到DefaultListModel_Java_Eclipse_Combobox_Jlist - Fatal编程技术网

Java 将组合框中的选定项添加到DefaultListModel

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() =

我有一个组合框,可以显示餐厅中的项目,我希望能够选择项目,然后单击下面的按钮,将其添加到DefultListModel,我已经成功地做到了这一点,但我必须使用许多if语句

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());