eu tenho uma jComboBox com 2000 objetos, posso selecionar o item da lista tanto com mouse quanto por teclado, porém eu tenho este código, que caso seja escrito algo na jComboBox, ela ordena os itens na lista de acordo com o que está escrito
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();
}
}
}
);
}
Aí entra o problema, quando é filtrado algum texto, eu consigo selecionar os itens apenas com o teclado, se seleciono com o mouse ele seta o item selecionado como o anterior.
É possível adicionar a funcionalidade do click na lista para selecionar o item a partir do mouse ?