将特定实例属性添加到 JList

发布于 2025-01-04 07:13:29 字数 669 浏览 2 评论 0原文

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

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

假设构造函数是字符串名称、浮动价格、浮动重量。

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

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

有没有办法覆盖滚动窗格中显示的内容,以便只有 name 属性显示在其中(并丢弃其他属性),就像这样,而不覆盖SomeClass 类中的 toString() 方法。

Apples
Oranges
Bananas

我希望它是清楚的,如果您有任何问题,我会尽力澄清。

谢谢。

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

Say we have the following array of instantiated objects:

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

Assume the constructor is String name, float price, float weight.

So now I create a JList and put it in a JScrollPane:

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

Is there a way to override what's shows up in the scroll pane, so that only the name attribute shows up (and discard the other attributes) in it like so, without overriding the toString() method in the SomeClass class.

Apples
Oranges
Bananas

I hope it's clear, if you have any questions I'll try to clarify.

Thanks.

Edit:
I just want to clarify, is there a way to use for example a method written for SomeClass called getName() that returns the string value of the name attribute and let the JList display only that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

神妖 2025-01-11 07:13:29

你可以在JList上设置一个ListCellRenderer,你可以选择任何你想要渲染的东西。 另请参阅有关 JList 的官方文档

You can set a ListCellRenderer on the JList, you can choose whatever you want to render anything. See also the official doc about JList

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文