java - 将特定实例属性添加到 JList

标签 java swing jlist renderer

假设我们有以下实例化对象数组:

SomeClass[] items = {new SomeClass("Apples", 1.99f, 0.311f),
new SomeClass("Oranges", 0.99f, 0.396f),
new SomeClass("Bananas",2.99f,2.27f)};

假设构造函数是String name, float price, float weight.

所以现在我创建一个 JList 并将其放在 JScrollPane 中:

itemsList = new JList(items);
ScrollPane itemsListScrollPane = new JScrollPane(itemsList);

有没有一种方法可以覆盖滚动 Pane 中显示的内容,以便只显示 name 属性(并丢弃其他属性),而无需覆盖 SomeClass 类中的 toString() 方法。

Apples
Oranges
Bananas

我希望一切都清楚,如果您有任何问题,我会尽力澄清。

谢谢。

编辑: 我只是想澄清一下,有没有一种方法可以使用例如为 SomeClass 编写的名为 getName() 的方法,该方法返回 name 属性的字符串值并让 JList 仅显示该值?

最佳答案

你可以在JList上设置一个ListCellRenderer,你可以选择任何你想渲染的东西。 See also the official doc about JList

关于java - 将特定实例属性添加到 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9235154/

相关文章:

java - Mockito 4.6.1 不适用于 Spring Boot

java - JDK中渲染字体的源代码在哪里?

java - 在java中使用反射调用重写的实例方法

java - 绘制 BufferedImage 问题

java - 非法参数异常 : No interpolator found for float during implementing Substance LAF

java - 强制更新 JList

java - 如何更改未选中的 JList 项目的背景颜色?

java - Vaadin 14 Upload - 当用户单击选择文件对话框中的取消按钮时如何捕获事件

java - 最大化 JFrame on action?

java - valueChanged 事件监听器 java swing = 为什么双击?