从 DefaultListModel 绑定的 Jlist 是否可以仅显示某些元素?
Jlist binded from DefaultListModel is it possible to Display Only Certain elements ?
是否可以仅绑定或显示部分 ListModel 或 List
当我将它绑定到 Jlist 项目时?
在我的示例中,我有一个列表模型,它由一个 class(pizza) 的数组组成,它有多个变量,我只想显示一个,但它们都显示在一行中。
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);
此代码每行显示 Pizza 中的所有项目,
是否可以只显示披萨中的 1 个变量?例如奶酪单独在列表框中......?
默认单元格渲染器正在对模型中的值对象调用 toString()
。您可以执行以下任一操作:
- Override/change
toString()
返回的值是您要显示的文本
- 更改单元格渲染器以不同于默认设置的值对象格式
我更喜欢第二个,因为您可能出于其他原因希望 toString()
具有特定的其他值。
见http://docs.oracle.com/javase/7/docs/api/javax/swing/ListCellRenderer.html
是否可以仅绑定或显示部分 ListModel 或 List 当我将它绑定到 Jlist 项目时?
在我的示例中,我有一个列表模型,它由一个 class(pizza) 的数组组成,它有多个变量,我只想显示一个,但它们都显示在一行中。
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);
此代码每行显示 Pizza 中的所有项目, 是否可以只显示披萨中的 1 个变量?例如奶酪单独在列表框中......?
默认单元格渲染器正在对模型中的值对象调用 toString()
。您可以执行以下任一操作:
- Override/change
toString()
返回的值是您要显示的文本 - 更改单元格渲染器以不同于默认设置的值对象格式
我更喜欢第二个,因为您可能出于其他原因希望 toString()
具有特定的其他值。
见http://docs.oracle.com/javase/7/docs/api/javax/swing/ListCellRenderer.html