首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AutoCompleteDecorator正在中断ItemListener

AutoCompleteDecorator正在中断ItemListener
EN

Stack Overflow用户
提问于 2014-11-24 19:39:45
回答 1查看 100关注 0票数 0

我有一个editable JComboBox,它与SwingX库的AutoCompleteDecorator集成在一起。我的JComboBox也注册了一个ItemListener。现在,请看一下下面的代码。

代码语言:javascript
复制
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,那么一切都会正常工作。

有谁知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2014-11-24 20:54:57

当您要查找的key在map中找不到时,就会出现问题。

在这种情况下:

  • client_name_id_map.get(selectedClientName)将返回null
  • String.valueOf(client_name_id_map.get(selectedClientName))将返回“null”
  • Integer.parseInt("null")将抛出异常

一个简单的解决方案:

代码语言:javascript
复制
        if(!selectedClientName.equals("Select Client"))
        {
            Integer idClient = client_name_id_map.get(selectedClientName);
            if (idClient != null) {
                // do something
            }

            String sql = "r";
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27103957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档