java - AutoCompleteDecorator está interrumpiendo ItemListener
swing combobox (1)
Tengo un JComboBox
editable
que está integrado con AutoCompleteDecorator
de la biblioteca SwingX
. Mi JComboBox
también está teniendo un ItemListener
registrado también. Ahora, por favor, mira el siguiente código.
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";
}
}
}
Pase lo que pase, mi código no pasa int idClient = Integer.parseInt(String.valueOf(client_name_id_map.get(selectedClientName)));
siempre terminaba con NumberFormatException
. Lo sorprendente es que, si elimino AutoCompleteDecorator
, todo funciona bien.
¿Alguien sabe cómo solucionar esto, por favor?
El problema ocurriría cuando la clave que estás buscando no se encuentre en el mapa.
En tal caso :
-
client_name_id_map.get(selectedClientName)
devolvería null -
String.valueOf(client_name_id_map.get(selectedClientName))
devolverá "null" - y
Integer.parseInt("null")
arrojaría una excepción
Una solución simple:
if(!selectedClientName.equals("Select Client"))
{
Integer idClient = client_name_id_map.get(selectedClientName);
if (idClient != null) {
// do something
}
String sql = "r";
}