从DefaultListModel绑定的Jlist是否可以仅显示某些元素?

时间:2015-04-24 00:30:01

标签: java swing jlist defaultlistmodel

是否可以绑定或仅显示某些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种可变物吗?仅在列表框中的奶酪......?

1 个答案:

答案 0 :(得分:2)

默认的单元格渲染器正在模型中的值对象上调用toString()。您可以执行以下任一操作:

  • 覆盖/更改toString()返回的值,使其成为您要显示的文字
  • 更改单元格渲染器以使值对象的格式与默认值
  • 不同

我更喜欢第二种,因为您可能希望toString()出于某种其他原因而拥有特定的其他值。

请参阅http://docs.oracle.com/javase/7/docs/api/javax/swing/ListCellRenderer.html