我正在尝试标题,以便在JList
上获取所选项目,并在按下按钮时将其添加到第二个JList
:
btnAdd.addActionListener(new ActionListener (){
public void actionPerformed(ActionEvent arg0) {
list_1.addElement(list.getSelectedValue());
}});
所以,当我写这篇文章时,在AddElement
中,它要求我将list_1
投射到Object
,看起来像这样,因为这个错误:
然后在我要求添加Cast之后,我得到了同样的错误,就像我没有添加任何东西一样。
所以我的问题是,当按下按钮时,如何从一个JList
向另一个JList
添加内容?如果我在删除最后添加的项目或者selectedItem方面遇到同样的问题,请告诉我如何防止它。
完整代码:
JList list = new JList();
scrollPane.setViewportView(list);
list.setModel(new AbstractListModel(){
String[] values = new String[] {"Aceite de oliva", "Aceitunas negras", "Aceitunas verdes", "Albahaca", "Alcachofa", "Anchoas", "Berenjena", "Cebolla", "Cereza", "Champiniones", "Durazno", "Harina de garbanzo", "Huevo", "Jam\u00F3n", "Jam\u00F3n serrano", "Ma\u00EDz", "Morr\u00F3n rojo", "Morr\u00F3n verde", "Or\u00E9gano", "Palmitos", "Pi\u00F1a", "Queso cheddar", "Queso crema", "Queso gorgonzola ", "Queso muzzarella", "Queso parmesano", "Salame", "Tomates", "Tomillo"};
public int getSize() {
return values.length;
}
public Object getElementAt(int index) {
return values[index];
}
});
list.setToolTipText("");
list.setBackground(Color.LIGHT_GRAY);
JScrollPane scrollPane_1 = new JScrollPane();
scrollPane_1.setBounds(373, 28, 184, 257);
contentPane.add(scrollPane_1);
JList list_1 = new JList();
list_1.setModel(new AbstractListModel() {
String[] values2 = new String[] {"", "", "", "", "", "", "", "", ""};
public int getSize() {
return values2.length;
}
public Object getElementAt(int index) {
return values2[index];
}
});
list_1.setBackground(Color.LIGHT_GRAY);
scrollPane_1.setViewportView(list_1);
我访问了许多不同类型的列表/模型的网站,因为我真的不知道如何使用JList
s我无法弄清楚我是什么?我做错了。
答案 0 :(得分:3)
您需要将Object
添加到DefaultListModel
的{{1}}。
您可以使用JList
的{{1}}方法。
我真的不知道如何使用JLists
阅读How to Use Lists上的Swing教程中有关JList基础知识的部分。 addElement(...)
示例中的DefaultListModel
按钮将向您显示如何执行此操作。它使用"Hire"
方法,但概念是相同的。