我有一个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,那么一切都会正常工作。
有谁知道怎么解决这个问题吗?
发布于 2014-11-24 20:54:57
当您要查找的key在map中找不到时,就会出现问题。
在这种情况下:
client_name_id_map.get(selectedClientName)将返回nullString.valueOf(client_name_id_map.get(selectedClientName))将返回“null”Integer.parseInt("null")将抛出异常一个简单的解决方案:
if(!selectedClientName.equals("Select Client"))
{
Integer idClient = client_name_id_map.get(selectedClientName);
if (idClient != null) {
// do something
}
String sql = "r";
}https://stackoverflow.com/questions/27103957
复制相似问题