是否可以绑定或仅显示某些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

10-07 12:54