Jlist 不在字符串中显示我的项目

Jlist not displaying my items in String

JButton btnAdd = new JButton("add");
    btnAdd.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Main selectedValue = (Main)courseList.getSelectedValue();
            if(selectedValue !=null){
                orderList.addElement(chosenList);
        }
        }
    });

我创建了一个 addButton,它将元素从一个 Jlist 添加到另一个 Jlist。但是,当我 运行 我的应用程序并单击添加按钮时,它在我的 chosenList Jlist:

中给了我这个错误

javax.swing.JList[,-2008,0,2255x182,alignmentX=0.0,alignmentY=0.0,border=,flags=50332008,maximumSize=,minimumSize=,preferredSize=,fixedCellHeight=-1,fixedCellWidth=-1,horizontalScrollIncrement=-1,selectionBackground=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],selectionForeground=sun.swing.PrintColorUIResource[r=51,g=51,b=51],visibleRowCount=8,layoutOrientation=0]

您在列表中看到的不是错误,而是 chosenList 对象的 toString() 值。也许您打算改为执行以下操作:

orderList.addElement(selectedValue);

而不是:

orderList.addElement(chosenList);

我相信 addElement 方法应该在 class DefaultListModel.

的实例上调用

如果您之前添加了一个 DefaultListModel 实例作为您的 orderList 的模型,您应该使用以下代码将元素添加到您的 orderList.

Object selectedValue = courseList.getSelectedValue();
DefaultListModle listModel = (DefaultListModle)orderList.getModel();
listModel.addElement(selectedValue);

如果您还没有设置任何实现 ListModel 的 class 实例,您应该以这种方式初始化您的 orderList

DefaultListModel listModel = new DefaultListModel();
orderList = new JList(listModel);
// or
orderList.setModel(listModel);

看看How to Use Lists from Java Tutorials