gpt4 book ai didi

java - 在 Jlist 中显示 Objects 的属性

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:14:08 27 4
gpt4 key购买 nike

我有一个成分类

public class Ingredient {
String NameP;
List ListS;
String Desc;
List ListT;
...

此类的多个实例存储在对象列表中。我还有一个

javax.swing.JList ListIng;

模型设置为

ListIngModel = new DefaultListModel();

思路是利用Jlist显示所有对象的“NameP”字段,选择其中一个进行进一步检查,然后抓取选中的对象:

Ingredient Selected = ListIngModel.get(ListIng.getSelectedIndex())

我可以加载列表模型中的对象,但随后 JList 会显示这些对象的地址。有没有一种优雅的方式让它显示它存储的对象的属性?

最佳答案

你应该使用JListCellRenderer

看看How to use Lists了解更多详情。

基本上,它允许您定义列表模型中的给定对象在 View 中的显示方式。此方法允许您根据需要自定义 View ,甚至可以在运行时替换它。

例如

public class IngredientListCellRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList<?> list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value instanceof Ingredient) {
Ingredient ingredient = (Ingredient)value;
setText(ingredient.getName());
setToolTipText(ingredient.getDescription());
// setIcon(ingredient.getIcon());
}
return this;
}
}

关于java - 在 Jlist 中显示 Objects 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14740381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com