Porque o KeyListener não funciona ?!

4 respostas
E

Olá amigos !
Estou tentando fazer com que funcione um KeuListener em um Combo Box, mas se eu colocar o Combo como “Editable” o KeyListener não funciona !!

Se não colocar como “Editable” funciona !

Alguém sabe qual o problema ?

Testem o código postado, porfavor, depois descomentem a linha em que seta para Enabled a Combo.

Obrigado pessoal !

public class Teste1 extends javax.swing.JFrame {


    public Teste1() {
        initComponents();
    }

    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();
        jComboBox1 = new javax.swing.JComboBox();

          jComboBox1.setPreferredSize(new java.awt.Dimension(150, 25));

         //jComboBox1.setEditable(true);


        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        jComboBox1.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jComboBox1KeyPressed(evt);
            }
        });

        jPanel1.add(jComboBox1);

        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

        setSize(500,450);
    }

    private void jComboBox1KeyPressed(java.awt.event.KeyEvent evt) {
       
        javax.swing.JOptionPane.showMessageDialog(null,"Opa Funfa !!");
    }

   
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }

    
    public static void main(String args[]) {
        new Teste1().show();
    }


  
    private javax.swing.JPanel jPanel1;
    private javax.swing.JComboBox jComboBox1;
   

}

4 Respostas

J

Oi

elrafa, mas é que se o JComboBox não estiver com o setEditable em true, o teclado não vai ter efeito nele mesmo, por isso, não dispara nehum KeyListener.

T+

E

Olá, jeveaux, mas o que está acontecendo é exatamente o contrário !

Com o setEditable(true), o Evento de Teclado não funciona !

Com ele false, funciona !!

Obrigado !

G

“elrafa”:
Olá, jeveaux, mas o que está acontecendo é exatamente o contrário !

Com o setEditable(true), o Evento de Teclado não funciona !

Com ele false, funciona !!

Obrigado !


8O

Como ele funciona com Editable ( false ) se isso impossibilita a inserção de dados pelo usuário?

E

GraveDigger, você chegou a testar o código que postei ?

Se não, teste clicar no Combo e digite alguma tecla com o setEditable(false) e depois com o true !

Você verá que loucura acontece !

Obrigado pela atenção !

Criado 17 de maio de 2005
Ultima resposta 18 de mai. de 2005
Respostas 4
Participantes 3