当我尝试从 JList 到另一个 JList 的 getSelectedValue() 时出现错误
I got an error when I try to getSelectedValue() from a JList to another JList
我正在尝试按照标题所说,在 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,所以我不知道自己做错了什么。
您需要将 Object
添加到 JList
的 DefaultListModel
。
您可以使用 DefaultListModel
的 addElement(...)
方法。
i really don't get how to use JLists
阅读有关 How to Use Lists 的 Swing 教程部分,了解 JList 基础知识。 ListDemo
示例中的 "Hire"
按钮将向您展示如何执行此操作。它使用 insertElementAt(...)
方法,但概念相同。
我正在尝试按照标题所说,在 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,所以我不知道自己做错了什么。
您需要将 Object
添加到 JList
的 DefaultListModel
。
您可以使用 DefaultListModel
的 addElement(...)
方法。
i really don't get how to use JLists
阅读有关 How to Use Lists 的 Swing 教程部分,了解 JList 基础知识。 ListDemo
示例中的 "Hire"
按钮将向您展示如何执行此操作。它使用 insertElementAt(...)
方法,但概念相同。