![](/img/trans.png)
[英]Java Swing DefaultListModel containing storing more information
[英]Java Swing - DefaultListModel - Printing all object information, when i only want to print one field
我有这个DefaultListModel
DefaultListModel listModel;
//constructor does the right hting... etc.. I skipped over a lot of code
JList jlist_available_items;
....
jlist_available_items= new JList(cartModel); //etc
一切都在完美地工作,问题是
listModel.addElement(product);
如果我将它更改为product.name它将看起来正确,但行为错误[对象本身将不可加载,只有名称]
将对象添加到视图中,我想要添加的是对象名称。
当我将其更改为名称时会导致各种问题,因为我将对象存储在hashmap中,而hashmap使用对象作为键,而不是product.name字符串。
原因是这个方法可以在hashmap中搜索正确的对象。
for (Product p : store.database.keySet()) {
if (jlist_available_items.getSelectedValuesList().contains(
(Product) p)) { // if item is selected
cart.addItem(p);
}
}
我怎样才能解决这个问题?? 我一直在尝试修复它和相关的错误两个小时almsot =(!
样本输出也是
Product [description=descrion test, name=test]
这就是它的印刷。 我只想要它打印名称。 =(!
对象也在hashmap中。 我可以遍历hashmap直到一个对象具有相同的名称值,然后使用它,但我不想这样做。 我想要一个更合适和可扩展的解决方案,因为我在思考一个方面遇到了很多麻烦。
顺便说说! 这是Swing中的GUI应用程序! 如果你想要图像,请问=)!
编辑:现在,我的列表单元格渲染器坏了! 它刚刚工作...... =(
@Override
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
Product product = (Product) value;
return this;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.