Java - Cerrar Ventana con Boton ESC

 
Vista:

Cerrar Ventana con Boton ESC

Publicado por Luis (1 intervención) el 18/04/2013 14:49:30
Buenas..
Estoy teniendo una duda, he creado una pequeña aplicacion en Java, especificamente eclipse, pero no me esta saliendo un pequeño paso. Lo que quiero hacer es que, la ventana se cierre presionando la tecla ESCAPE, si alguien podria ayudarme diciendome como hacer o donde he errado, estaría muy agradecido, también me gustaria corrigir la parte de presionar el ESC para el boton CERRAR y ENTER para el boton ACEPTAR. El programa tiene foco en un JTextField.

A continuacion dejo mi codigo, o al menos una parte, muchas gracias.


public class menu {
private JButton boton1, boton2;
private JLabel nombre;
private JLabel zona;
private JTextField ingresa;
String texto = "";
int z=0;

JFrame ventana = new JFrame ("Zona de Humos");
public menu(){

Dimension tamPantalla= Toolkit.getDefaultToolkit().getScreenSize();
Dimension tamFrame = ventana.getSize();
if (tamFrame .height > tamPantalla.height)
tamFrame .height = tamPantalla.height;
if (tamFrame .width > tamPantalla.width)
tamFrame .width = tamPantalla.width;
ventana.setSize(400,300);
ventana.setLocationRelativeTo(null);
// ImageIcon icon3 = createImage("secure.jpg","");
ImageIcon icon3 = new ImageIcon("C:/zonas/imagenes/secure.jpg");

JLabel imagen = new JLabel(icon3);
imagen.setBounds(220,70,160,120);
ventana.add(imagen);
ventana.addWindowListener(new WindowListener(){

@Override
public void windowOpened(WindowEvent e) {
// TODO Apéndice de método generado automáticamente

}

@Override
public void windowIconified(WindowEvent e) {
// TODO Apéndice de método generado automáticamente

}

@Override
public void windowDeiconified(WindowEvent e) {
// TODO Apéndice de método generado automáticamente

}

@Override
public void windowDeactivated(WindowEvent e) {
// TODO Apéndice de método generado automáticamente

}

@Override
public void windowClosing(WindowEvent e) {
// TODO Apéndice de método generado automáticamente

}

@Override
public void windowClosed(WindowEvent e) {
// TODO Apéndice de método generado automáticamente
e.getWindow().dispose();

}

@Override
public void windowActivated(WindowEvent e) {
// TODO Apéndice de método generado automáticamente

}
});

boton1 = new JButton("Aceptar");
nombre = new JLabel("Bienvenidos a Zonificaciones");
zona = new JLabel("Zona:");
ingresa = new JTextField("Escriba aqui la zona");
boton2 = new JButton("Cerrar");


ventana.setLayout(null);
ventana.add (boton1);
boton1.setBounds(80,200,100,30);
ventana.add(nombre);
nombre.setBounds(90,25,200,50);
ventana.add(zona);
zona.setBounds(20, 100, 50, 25);
ventana.add(ingresa);
ingresa.setBounds(60,100,150,25);
ventana.add(boton2);
boton2.setBounds(210, 200, 100, 30);
ventana.setVisible(true);

InputMap map = new InputMap();

map.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), "pressed");
map.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, true), "released");
map.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false), "pressed");
map.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, true), "released");



boton1.setInputMap(0, map);
boton2.setInputMap(0, map);

ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ListenerBoton Escuchar = new ListenerBoton();
boton1.addActionListener(Escuchar);
boton2.addActionListener(Escuchar);
ingresa.addActionListener(Escuchar);
ingresa.selectAll();



}

protected ImageIcon createImage(String path, String description) {
java.net.URL imgURL = getClass().getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
JOptionPane.showMessageDialog(null,"El archivo: " + path+" no existe");
return null;
}
}
public void cerrar ()
{
ventana.setVisible(false);
}

class ListenerBoton implements ActionListener{


@Override
public void actionPerformed(ActionEvent e) {
// TODO Apéndice de método generado automáticamente
if (e.getSource()==boton1 || e.getSource()==ingresa){
try
{

texto = ingresa.getText();
z = Integer.parseInt(texto);
if (z<=0 || z>117)
{
JOptionPane.showMessageDialog (null, "Zona no existente");
return;

}
@SuppressWarnings("unused")
ventana_princ var = new ventana_princ(z);
cerrar();
}catch (Exception m)
{
JOptionPane.showMessageDialog (null, "Debes escribir numeros");}


}
if (e.getSource()==boton2){
System.exit(0);

}
}

}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder