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!
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!