是否可以绑定或仅显示某些ListModel或List
当我将其绑定到Jlist项目时?
在我的示例中,我有一个由具有多个变量的类(比萨饼)数组构成的列表模型,我只想显示一个变量,但是它们都显示在一行中。
listModel = new DefaultListModel();
listModel = ListHandler.populateListModel(listModel);
// This returns listModel binded from array of a class<Pizza>
list = new JList(listModel);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setSelectedIndex(0);
JScrollPane listScrollPane = new JScrollPane(list);
Apanel.add(listScrollPane, BorderLayout.CENTER);
然后,当每行显示比萨饼中的所有项目时,此代码
是否可以仅显示比萨饼中的1个变量?例如仅在列表框中的奶酪...?
最佳答案
默认的单元格渲染器在模型中的值对象上调用toString()
。您可以执行以下任一操作:
覆盖/更改toString()
返回的值,使其成为您要显示的文本
更改单元格渲染器,以设置值对象的格式与默认格式不同
我希望使用第二个,因为出于某些其他原因,您可能希望toString()
具有特定的其他值。
见http://docs.oracle.com/javase/7/docs/api/javax/swing/ListCellRenderer.html