【发布时间】:2015-01-22 02:43:09
【问题描述】:
我有一个 editable JComboBox 与 SwingX 库的 AutoCompleteDecorator 集成。我的JComboBox 也注册了一个ItemListener。现在,请看下面的代码。
AutoCompleteDecorator.decorate(ClientNameCombo);
ClientNameCombo.addItemListener(new ClientNameComboAction());
private class ClientNameComboAction implements ItemListener
{
@Override
public void itemStateChanged(ItemEvent e)
{
String selectedClientName= ClientNameCombo.getSelectedItem().toString();
if(!selectedClientName.equals("Select Client"))
{
int idClient = Integer.parseInt(String.valueOf(client_name_id_map.get(selectedClientName)));
String sql = "r";
}
}
}
无论如何,我的代码没有通过int idClient = Integer.parseInt(String.valueOf(client_name_id_map.get(selectedClientName))); 它总是以NumberFormatException 结束。令人惊奇的是,如果我删除 AutoCompleteDecorator,那么一切正常。
有人知道如何解决这个问题吗?
【问题讨论】:
-
在调用 parseInt 之前尝试打印(或在调试器中查看)
client_name_id_map.get(selectedClientName),以查看其中包含的内容。 -
您使用的是
Map<String, Integer>吗?另一个愚蠢的问题,客户端 ID 是数字吗(如果您使用的不是Number对象作为值)? -
你是对的。它是
Map<String, Integer>。 ID 是数字。
标签: java swing combobox swingx itemlistener