Fala…
Bom faz um dia e meio que eu quero adicionar um keylistener em um JComboBox mas ele não ouve nada!!!
Alguém ja conseguiu fazer isso funcionar?
Fala…
Bom faz um dia e meio que eu quero adicionar um keylistener em um JComboBox mas ele não ouve nada!!!
Alguém ja conseguiu fazer isso funcionar?
Mostre como vc está implementando
[code]…
nomeJComboBox.addKeyListener(
new KeyAdapter()
{
public void keyPressed(KeyEvent e){
System.out.println("a");
}
}
…[/code]
teuComboBox.addKeyListener(new KeyListener() {
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyPressed(KeyEvent arg0) {
JOptionPane.showMessageDialog(null,"Apertou um tecla do teclado");
}
public void keyTyped(KeyEvent arg0) {
System.out.println(arg0.getKeyChar());
}
});
Cara, o q tu queres fazer exatamente? pq no q tu mostraste qdo o foco estiver no combox e uma tecla for acionada, ele vai mostrar uma mensagem. que tipo de evento tu queres?
[quote=klarq]Fala…
Bom faz um dia e meio que eu quero adicionar um keylistener em um JComboBox mas ele não ouve nada!!!
Alguém ja conseguiu fazer isso funcionar?[/quote]
Tente fazer o seguinte:
seuCombo.setEditable(false);
A Paz!!
[quote]teuComboBox.addKeyListener(new KeyListener() {
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyPressed(KeyEvent arg0) {
JOptionPane.showMessageDialog(null,"Apertou um tecla do teclado");
}
public void keyTyped(KeyEvent arg0) {
System.out.println(arg0.getKeyChar());
}
});[/quote]
Isso não funciona…
Ele não pega o evento!!!
Eu quero que o usuário digite uma palavra e que quando ele abrir o combo venha do banco os nomes que começam com a palavra digitada…
e eu quero fazer isso enquanto ele digita a palavra… … mas o combo não “ouve” nada!!
Deixa eu contar uma novidade…
Se eu fizer combo.setEditable(false)
o keylistener funciona!!!
Meu Deus… :shock:
Naum seria melhor trabalhar com Modelo (DefaultComboBoxModel)? Ao invés de você fazer esta filtragem na SQL vc armazenaria todos os registros em uma Collection no modelo, e toda vez que digitasse algo no combo ele filtraria apenas na aplicaçao, sem precisar ir ao banco sempre.
[quote]Naum seria melhor trabalhar com Modelo (DefaultComboBoxModel)? Ao invés de você fazer esta filtragem na SQL vc armazenaria todos os registros em uma Collection no modelo, e toda vez que digitasse algo no combo ele filtraria apenas na aplicaçao, sem precisar ir ao banco sempre[/quote].
Tudo bem… … mas como pegar o evento do teclado!!!
ja tentei isso mas como implementar o JTextComponent em um JFrame e não em um PlainDocument
[quote=klarq]Deixa eu contar uma novidade…
Se eu fizer combo.setEditable(false)
o keylistener funciona!!!
Meu Deus… :shock: [/quote]
Seguinte, eu mudei meu post lá em cima… é isso mesmo vc tem que setar para false.
Para vc interceptar agora vc terá que adicionar um Editor ao seu combo…
A Paz!!
// isso vc coloca na gui
JComboBox comboBox = new JComboBox(new Object[] {"Ester", "Jordi", "Jordina", "Jorge", "Sergi"}); //eu recomendo criar um modelo q extenda de DefaultComboBoxModel, nele vc conecta com obanco uma vez e adiciona os itens do combobox
comboBox.setEditable(true);
// get the combo boxes editor component
JTextComponent editor = (JTextComponent) comboBox.getEditor().getEditorComponent();
// change the editor's document
editor.setDocument(new S02BrokenAutoSelection(comboBox.getModel()));// esta classe está disponível em: http://www.orbital-computer.de/JComboBox/source/S02BrokenAutoSelection.java
É só vc importar essa a classe S02BrokenAutoSelection para o seu projeto, eu testei aki e funcionou.
Mais uma coisa, qdo for criar um post, tente dar o máximo de informação no início, pra ficar essa sequ~encia de posts desnecessárias.
Qualquer duvida pode perguntar.
[quote=cecaldas][code]
// isso vc coloca na gui
JComboBox comboBox = new JComboBox(new Object[] {“Ester”, “Jordi”, “Jordina”, “Jorge”, “Sergi”}); //eu recomendo criar um modelo q extenda de DefaultComboBoxModel, nele vc conecta com obanco uma vez e adiciona os itens do combobox
comboBox.setEditable(true);
// get the combo boxes editor component
JTextComponent editor = (JTextComponent) comboBox.getEditor().getEditorComponent();
// change the editor's document
editor.setDocument(new S02BrokenAutoSelection(comboBox.getModel()));// esta classe está disponível em: http://www.orbital-computer.de/JComboBox/source/S02BrokenAutoSelection.java
[/code]
É só vc importar essa a classe S02BrokenAutoSelection para o seu projeto, eu testei aki e funcionou.
Mais uma coisa, qdo for criar um post, tente dar o máximo de informação no início, pra ficar essa sequ~encia de posts desnecessárias.
Qualquer duvida pode perguntar.[/quote]
Pronto, agora é só fazer isso:
comboBox.setEditable(true);
JTextComponent editor = (JTextComponent)jComboBox1.getEditor().getEditorComponent();
editor.addKeyListener(new KeyListener() {
public void keyReleased(KeyEvent arg0) {
}
public void keyPressed(KeyEvent arg0) {
JOptionPane.showMessageDialog(null,"Apertou um tecla do teclado");
}
public void keyTyped(KeyEvent arg0) {
System.out.println(arg0.getKeyChar());
}
});
Eita moçada boa
Valew mesmo galeria…
estou tendo o mesmo problema q o klarq
mas a classe que resolveria o problema S02BrokenAutoSelection não está mais no link passado
solução alternativa ou link alternativo?