
Crear un frame con AWT es muy sencillo, simplemente tendremos que crear una instancia de la clase Frame y con un par de líneas más tendremos visible nuestra ventana.
Si todavía no has creado un frame en AWT te recomiendo que te leas «Crear un Frame con AWT».
Uno de los inconvenientes que tiene el crear un Frame sin más, es que este no atiende a ningún evento. Es por ello que por mucho que le demos en el aspa de cierre, el Frame no se va a cerrar. Claro está que esto no haría nuestra aplicación viable.
Es por ello que lo que vamos a hacer es controlar el evento windowClosing, para declarar que hay que hacer en la aplicación, dada esta situación.
Lo primero que tenemos que saber es que hay que utilizar la librería java.awt.event. Que es la que nos permite controlar estos eventos. A si que tendremos que importarla:
import java.awt.event.*;
Por otro lado tenemos que crear una clase del tipo WindowAdapter, en la cual crearemos el método que controla el evento windowClosing. Esto lo haremos dentro de nuestro método main, ya que no vamos a reutilizar esta clase en otro sitio, aunque podríamos hacerlo.
new WindowAdapter(){
public void windowClosing(WindowEvent we){
...
}
}
En el caso de que se produzca el evento windowClosing, lo que haremos será finalizar la aplicación, es por ello que utilizamos el objeto del sistema y su método exit.
System.exit(0);
Finalmente el código que controle el evento windowClosing quedará de la siguiente forma:
new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
}
La instancia de la clase WindowAdapter se la tenemos que asignar al Frame. Para ello utilizamos el método addWindowListener.
miFrame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
Víctor Cuervo
Gracias por el comentario @Victor. :-D
Victor
buena explicacion men, para aquellos que no entiendan, este codigo se usa cuando se crea una aplicacion en netbeans pero desde una clase main, ahi no se coloca botones ni nada, todo se declara y se crea con puras lineas de codigo.
kike
Tengo una duda, he creado una aplicacion contra una base de datos oracle , y codificada en jdeveloper 10g, la historia es que tengo un jframe principal, y jinternalframe, que controlo bien(cierre, minimizado, y cierre, cuando cierro la jframe principal)…
El problema viene porque he creado 2 form con adf/swin, y son jframe, y no puedo o no se como hacer para que cuando cierro la jframe principal, cerrar esos form si estan abiertos, tampoco se, como hacer para que solo se abran una vez????
gracias por las respuestas, un saludo…
Ces
debes cambiar EXIT ON CLOSE por DISPOSE, busca en las propiedades del frame y cambia el tipo de cerrado,
saludos
judith
como puedo cerrar solo una ventana sin que se sierren las otras ventanas…. ya que estoy usando netbeans… estoy en un proyecto ayudenme
lineadecodigo
@MARPEVI,
Sobre qué te gustaría que hablásemos en la web?? Tus comentarios nos serán de gran ayuda.
Gracias.
MARPEVI
Desearia que sean más actuales y consisos en sus programas..saludos
ces
no necesariamente, podes darle en propiedades de las ventans y cambiar EXIT ON CLOSE por DISPOSE asi solo se cerraba la ventana actual,
saludos
LOL
U fail, así si tienes varias ventanas se cierran todas.
Gadiel
Prefiero usar el netbeans