【问题标题】:Jlist binded from DefaultListModel is it possible to Display Only Certain elements ?从 DefaultListModel 绑定的 Jlist 是否可以仅显示某些元素?
【发布时间】:2015-04-24 09:38:22
【问题描述】:

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

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

【问题讨论】:

  • 类似this?
  • 1) 为了尽快获得更好的帮助,请发布MCVE(最小完整可验证示例)或SSCCE(简短、自包含、正确示例)。 2) BTW - 在过滤方面,我会使用single column JTable
  • @MadProgrammer 不,我没有试图过滤..只是列表中每个类的整个输出被逐行(每个元素)转储到 Jlist 中......我只想显示一个变量类 .. 例如 Pizza.chesseType 或 ??elementdata[0].chesseType ??在递归列表中..
  • 然后,我们需要看一个可运行的例子

标签: java swing jlist defaultlistmodel


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    相关资源
    最近更新 更多