Ola Pessoal,
Eu tenho um JCombobox (editable) com um punhado de itens, quero remover um item quando o cara pressionar DEL estando com o mouse sobre um dos itens da lista (sem seleciona-lo porem).
Fiz o seguinte código:
int focusedIndex = -1;
MouseListener cboServidorBDMouseListener = new MouseListener() {
public void mouseEntered(MouseEvent e) {
for(int i=0;i<cboServidorBD.getItemCount();i++) {
if(cboServidorBD.getComponent(i)==e.getSource()) {
focusedIndex = i;
}
}
}
//demais metodos implementados
}
KeyListener cboServidorBDKeyListener = new KeyListener() {
public void keyPressed(KeyEvent e) {
if(cboServidorBD.isPopupVisible()) {
if(e.getKeyCode()==KeyEvent.VK_DELETE) {
cboServidorBD.remove(focusedIndex);
}
}
}
//demais metodos implementados
}
//...
//registrando os listeners para cada component do combo
for(int i=0;i<cboServidorBD.getItemCount();i++) {
cboServidorBD.getComponent(i).addKeyListener(cboServidorBDKeyListener);
cboServidorBD.getComponent(i).addMouseListener(cboServidorBDMouseListener);
}
A idéia é qd o mouse passar pelo componente ele setar o indice daquele componente no combo box … ao pressionar a tecla e for DEL eu removo o item.
Mas nao esta funcionando … o que fazer? :x
Eu nao posso registrar os eventos pro proprio JCombo pq nao quero o item selecionado …
Ideias :?: :roll:
Obrigado