java - 从 DefaultListModel 绑定(bind)的 Jlist 是否可以仅显示某些元素?

标签 java swing jlist defaultlistmodel

是否可以绑定(bind)或仅显示部分ListModel或List 当我将它绑定(bind)到 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);

此代码然后每行显示 Pizza 中的所有项目, 是否可以只显示 Pizza 中的 1 个变量?例如,奶酪单独在列表框中......?

最佳答案

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

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

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

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

关于java - 从 DefaultListModel 绑定(bind)的 Jlist 是否可以仅显示某些元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29836706/

相关文章:

java - 在Ubuntu文件系统中上传文件后,文件没有格式

java - 使用 KeyListener 进行 Pong 控制

java - 循环图像,java gui?

java - 在我的 JList 上添加滚动

java - 将项目添加到 JList 删除所有其他项目

java - 用Java创建一个漂亮的 ListView

java - 如何使用正则表达式删除以空格结尾的每个字符串行中的换行符? java

javascript - 需要从js文件引用Java全局变量

java - 错误 : COALESCE types bytea and character varying in PostgreSQL

java - SecondaryLoop 而不是 SwingWorker?