将项添加到JComboBox

Nic*_*nko 18 java swing jcombobox

我在面板上使用了一个组合框,据我所知,我们只能添加带有文本的项目

    comboBox.addItem('item text');
Run Code Online (Sandbox Code Playgroud)

但有时我需要使用项目和项目文本的一些值,如在html中选择:

    <select><option value="item_value">Item Text</option></select>
Run Code Online (Sandbox Code Playgroud)

有没有办法在组合框项目中设置值和标题?

现在我使用哈希来解决这个问题.

JBu*_*oJr 34

将值包装在类中并覆盖该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;
    }
}
Run Code Online (Sandbox Code Playgroud)

将ComboItem添加到您的comboBox.

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"));
Run Code Online (Sandbox Code Playgroud)

每当你得到所选项目.

Object item = comboBox.getSelectedItem();
String value = ((ComboItem)item).getValue();
Run Code Online (Sandbox Code Playgroud)

  • 我收到此错误:"ComboItem无法转换为String".我该怎么转换呢?我的代码就像这个例子. (5认同)