1

我不知道这是否可能。

// 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 来完成。

4

1 回答 1

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>将数字 String 与其相关 int 映射的方法,但我更喜欢第一个解决方案,因为它对我来说似乎更干净。

于 2012-12-03T05:00:49.380 回答