将特定实例属性添加到 JList
假设我们有以下实例化对象数组:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你可以在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