2012-12-03 15 views
1

我不知道這是否可能。使用Java應用程序在值列表框中存儲隱藏值(ID)

// Adding values to a listbox in Java 
DefaultListModel<String> model = new DefaultListModel<String>(); 
model.addElement("One"); 
model.addElement("Two"); 
list1.setModel(model); 

我要的是莫名其妙地存儲在列表框中的值如下:

If user clicks on "One", ID=1 is retrieved. 
If user clicks on "Two", ID=2 is retrieved. 

我知道如何檢索選定的價值,但我想存儲一個隱藏的ID。 這對於基於Web的編程很容易,但不確定是否可以用Java來完成。

回答

2

是的,這絕對有可能的,但關鍵是不要存儲字符串的模式,而是持有字符串和id的等

假設一類,MyFoo保存這些領域對象。

DefaultListModel<MyFoo> model = new DefaultListModel<String>(); 
model.addElement(new MyFoo("One", 1)); 
model.addElement(new MyFoo("Two", 2)); 
list1.setModel(model); 

唯一踢球的是,你會想給JList顯示只有號碼串一個ListCellRenderer,但是這並不難做到,和教程將告訴你如何做到這一點。

另一種解決方案是創建一個HashMap<String, Integer>映射數字字符串與其相關的int,但我更喜歡第一個解決方案,因爲它看起來更清潔。

+0

我在實現ListCellRenderer時遇到了一些麻煩。你能指導我嗎? –

+0

@ D.Rattansingh:您是否檢查過本教程的渲染器部分,您可以在這裏找到(http://docs.oracle.com/javase/tutorial/uiswing/components/list.html)?如果在嘗試完成這些指示後仍然卡住,請創建您的[sscce](http://sscce.org),將您的嘗試顯示爲上述問題的編輯,然後讓我們看看如何改進。 –

+0

明白了,謝謝.. –

相關問題