![](/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.