[RESOLVIDO] Como utilizar um comando para fechar o JFrame?

Como faço para utilizar o comando Esc para fechar a JFrame atual??

tipo to no menu principal dae abro outra janela, dae quero fechar essa janela só apertando Esc!

Como faço?

Aguardo resposta!
Obrigado pela atenção!

implemente a interface KeyListener na sua janela, ou em outra classe qualquer…

adicione o evento de keylistener na sua janela com
this.addKeyListener() a instancia da classe que implementa a interface KeyListener

capture a tecla com o KeyEvent… se nao me engano o ESC é o KeyEvent.VK_ESCAPE

sempre que alguma tecla do teclado for pressionado quando a janela estiver em foco, o método referente ao evento será invocado.

se a tecla capturada for a ESC, chame o método dispose() ou setVisite(false) da sua janela…

e pronto!

bem, seguindo a sua instruções eu fiz assim:

import java.awt.event.KeyEvent;

public class cadastrofilmeFrame extends javax.swing.JFrame {


    public cadastrofilmeFrame() {
        initComponents();
        setLocationRelativeTo(null);
    }

    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                formKeyPressed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        pack();
    }

    private void formKeyPressed(java.awt.event.KeyEvent evt) {
this.addKeyListener(KeyEvent.VK_ESCAPE);
setVisible(false);       
    }


    public static void cadastrofilmeFrame () {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new cadastrofilmeFrame().setVisible(true);
            }
        });
    }

}

Mais não funcionou, fiz errado??? falta alguma coisa???
Sou novo ainda no java xD!

Amigo, tente esse método e chame ele no construtor de sua classe.

[code]public void setAcessibilidade() {
JRootPane meurootpane = getRootPane();
meurootpane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), “ESCAPE”);
meurootpane.getRootPane().getActionMap().put(“ESCAPE”, new AbstractAction(“ESCAPE”) {

        public void actionPerformed(ActionEvent e) {
            setVisible(false);
        }
    });
}[/code]

quase certo! heheh!

arruma o método formKeyPressed pra assim:

if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
	setVisible(false);
}

esse código foi gerado pelo NetBeans?
o NetBeans é legal, mas como vc disse que é novo no java, talvez seria mais interessante vc escrever o código direto no editor… é melhor pra aprender

abraços!

[quote=danielbadawi]quase certo! heheh!

arruma o método formKeyPressed pra assim:

if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
	setVisible(false);
}

esse código foi gerado pelo NetBeans?
o NetBeans é legal, mas como vc disse que é novo no java, talvez seria mais interessante vc escrever o código direto no editor… é melhor pra aprender

abraços![/quote]

vlws, consegui e obrigado pela sugestão, obrigado pela sugestão tb marcostdb!