将项目添加到 JComboBox
我在面板上使用组合框,据我所知,我们可以添加仅包含文本的项目
comboBox.addItem('item text');
但有时我需要使用项目和项目文本的一些值,如在html select中:
<select><option value="item_value">Item Text</option></select>
有没有办法在组合框项目中同时设置值和标题?
现在,我使用哈希来解决此问题。
我在面板上使用组合框,据我所知,我们可以添加仅包含文本的项目
comboBox.addItem('item text');
但有时我需要使用项目和项目文本的一些值,如在html select中:
<select><option value="item_value">Item Text</option></select>
有没有办法在组合框项目中同时设置值和标题?
现在,我使用哈希来解决此问题。
将值包装在类中并重写该方法。toString()
class ComboItem
{
private String key;
private String value;
public ComboItem(String key, String value)
{
this.key = key;
this.value = value;
}
@Override
public String toString()
{
return key;
}
public String getKey()
{
return key;
}
public String getValue()
{
return value;
}
}
将组合项添加到组合框中。
comboBox.addItem(new ComboItem("Visible String 1", "Value 1"));
comboBox.addItem(new ComboItem("Visible String 2", "Value 2"));
comboBox.addItem(new ComboItem("Visible String 3", "Value 3"));
每当您获得所选项目时。
Object item = comboBox.getSelectedItem();
String value = ((ComboItem)item).getValue();
您可以使用任何对象作为项目。在该对象中,您可以有多个所需的字段。在您的情况下,值字段。您必须重写 toString() 方法才能表示文本。在您的情况下,“项目文本”。请参阅示例:
public class AnyObject {
private String value;
private String text;
public AnyObject(String value, String text) {
this.value = value;
this.text = text;
}
...
@Override
public String toString() {
return text;
}
}
comboBox.addItem(new AnyObject("item_value", "item text"));