Pressionar enter

3 respostas
fabiodurgante

seguinte tenho um botao que faz o seguinte

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
JOptionPane.showMessageDialog(null, "teclou enter");  
}

quero que esse botao execute sua funcao quando pressionar tecla ENTER do teclado, tentei assim

private void seuPassKeyPressed(java.awt.event.KeyEvent  evt) {
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
                 jButton2.getAction();

        }
} 

  public void keyPressed(java.awt.event.KeyEvent evt) {
       int tecla=evt.getKeyCode();
       if (tecla==KeyEvent.VK_ENTER) {
           JOptionPane.showMessageDialog(null, "teclou enter");
           jButton2.getAction();
       }
   }

poren nao sei como chama essas funcoes nao funciona dessa maneira alguem poderia ajudar ???

e para chamar no construtor da classe como faco pra chamar essa funcao???

3 Respostas

dougfane
Seria isso ?
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {   
        JOptionPane.showMessageDialog(null, "teclou enter");    
}

private void seuPassKeyPressed(java.awt.event.KeyEvent  evt) {  
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){  
                 jButton2ActionPerformed(evt);    
        }  
}
// E pra chamar no construtor seria algo assim
public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NomeDaClasse().jButton2ActionPerformed(null);              
            }
        });
}
fabiodurgante

valeu pela resposta mas fazzendo isso ele executa a funcao quando abre o jdialog, queria q a qualquer momento que eu clicasse o enter ele abrisse a funcao fiz assim

public void enter() {
        JRootPane enter = getRootPane();
        enter.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
        enter.getRootPane().getActionMap().put("enter", new AbstractAction("enter") {
            public void actionPerformed(ActionEvent e) {

                   jButton2.doClick();

            }
        });
    }

e no construtor da classe

enter(); 
  o meu JButton2 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
}

ai funciona perfeito se alguem souber outra forma desde ja agradeço valeuuu

dougfane

Na verdade ele vai executar sim a função quando construir sua classe. Porém, pra isso não acontecer, basta remover a instância de ação do botão do construtor. Postei a chamada no construtor porque você perguntou como seria rsrs (ou eu entendi errado)

Criado 11 de junho de 2011
Ultima resposta 11 de jun. de 2011
Respostas 3
Participantes 2