Java Jlist未以字符串形式显示我的项目
我创建了一个addButton,它将元素从一个Java Jlist未以字符串形式显示我的项目,java,eclipse,swing,runtime-error,jlist,Java,Eclipse,Swing,Runtime Error,Jlist,我创建了一个addButton,它将元素从一个Jlist添加到另一个Jlist。但是,当我运行我的应用程序并单击add按钮时,它会在我的选择列表Jlist中显示此错误: javax.swing.JList[,-2008,02255x182,alignmentX=0.0,alignmentY=0.0,border=,flags=50332008,maximumSize=,minimumSize=,preferredSize=,fixedCellHeight=-1,fixedCellWidth=-1
Jlist
添加到另一个Jlist
。但是,当我运行我的应用程序并单击add按钮时,它会在我的选择列表Jlist
中显示此错误:
javax.swing.JList[,-2008,02255x182,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],SelectionForegrough=sun.swing.PrintColorUIResource[r=51,g=51,b=51],visibleRowCount=8,layoutOrientation=0]
列表中看到的不是错误,而是
chosenList
对象的toString()
值。也许您的意思是要执行以下操作:
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);
}
}
});
而不是:
orderList.addElement(selectedValue);
我认为应该对类
DefaultListModel
的实例调用addElement
方法
如果以前添加了DefaultListModel
实例作为orderList
的模型,则应使用以下代码将元素添加到orderList
中
orderList.addElement(chosenList);
如果尚未设置实现ListModel
的类的任何实例,则应通过以下方式初始化orderList
:
Object selectedValue = courseList.getSelectedValue();
DefaultListModle listModel = (DefaultListModle)orderList.getModel();
listModel.addElement(selectedValue);
查看。它看起来像是将整个
JList
添加为单个元素。循环遍历其中的项目,并分别添加每个项目。可能您的意思是执行orderList.add(selectedValue)代码>?我将其更改为“orderList.add(selectedValue);”但这也是错误的,因为addElement是红色的,并且说“DefaultListModel类型中的addElement(JList)不适用于参数(Main)”,我已经做了更改,但这只是给了我另一个错误,即:DefaultListModel类型中的方法addElement(JList)不适用于参数(Main)orderList.getModel()代码>也是错误的,它说getModel()方法对于类型是未定义的DefaultListModel@mikeb现在我看到您的orderList
是DefaultListModel
类型,而不是JList
。你需要发布更多的代码,让我们看看你的代码中发生了什么。如果orderList
是DefaultListModel
,那么您应该能够使用orderList.addElement(selectedValue)
添加元素。两件事,正确命名变量,如将orderList
更改为orderListModel
,并向我展示Main
是什么。
DefaultListModel listModel = new DefaultListModel();
orderList = new JList(listModel);
// or
orderList.setModel(listModel);