Manipular JComboBox

2 respostas
smota

(estreiando o forum novo com uma msg velha do Avançado)

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

2 Respostas

D

se for um JComboBox o metodo para remover itens é

smota

ehehe eu conheco o metodo … o problema é saber qual o indice do elemento que o cara ta com o mouse em cima (sem seleciona-lo) … entendeu?

com a listagem aberta o usuário poe o mouse sobre um item a pressiona del (sem clicar).

[]s

Criado 2 de junho de 2003
Ultima resposta 3 de jun. de 2003
Respostas 2
Participantes 2