当我尝试从JList到另一个JList的getSelectedValue()时出错

时间:2016-10-28 02:42:34

标签: java swing jlist

我正在尝试标题,以便在JList上获取所选项目,并在按下按钮时将其添加到第二个JList

btnAdd.addActionListener(new ActionListener (){

            public void actionPerformed(ActionEvent arg0) {


 list_1.addElement(list.getSelectedValue());

}});

所以,当我写这篇文章时,在AddElement中,它要求我将list_1投射到Object,看起来像这样,因为这个错误:
enter image description here

然后在我要求添加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);

enter image description here

我访问了许多不同类型的列表/模型的网站,因为我真的不知道如何使用JList s我无法弄清楚我是什么?我做错了。

1 个答案:

答案 0 :(得分:3)

您需要将Object添加到DefaultListModel的{​​{1}}。

您可以使用JList的{​​{1}}方法。

  

我真的不知道如何使用JLists

阅读How to Use Lists上的Swing教程中有关JList基础知识的部分。 addElement(...)示例中的DefaultListModel按钮将向您显示如何执行此操作。它使用"Hire"方法,但概念是相同的。