I have the following code for a jcombobox, where I need to be able to also capture the event when I click on one of the items in it.
private void initComboKeyListener() {
filterEditor.getFilterLabel().addKeyListener(
new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
char keyChar = e.getKeyChar();
if (!Character.isDefined(keyChar)) {
return;
}
int keyCode = e.getKeyCode();
switch (keyCode) {
case KeyEvent.VK_DELETE:
return;
case KeyEvent.VK_ENTER:
selectedItem = comboBox.getSelectedItem();
resetFilterComponent();
return;
case KeyEvent.VK_ESCAPE:
resetFilterComponent();
return;
case KeyEvent.VK_BACK_SPACE:
filterEditor.removeCharAtEnd();
break;
default:
filterEditor.addChar(keyChar);
}
if (!comboBox.isPopupVisible()) {
comboBox.showPopup();
}
if (filterEditor.isEditing() && filterEditor.getText().length() > 0) {
applyFilter();
} else {
comboBox.hidePopup();
resetFilterComponent();
}
}
}
);
}