Foros del Web » Programación para mayores de 30 ;) » Java »

frame se me cierra

Estas en el tema de frame se me cierra en el foro de Java en Foros del Web. Hola comunidad, tengo una duda que me esta rompiendo la cabeza. estoy haciendo una agenda con dos archivos (contactos, y eventos) y quiero que cuando ...
  #1 (permalink)  
Antiguo 15/08/2010, 20:21
 
Fecha de Ingreso: agosto-2010
Mensajes: 2
Antigüedad: 13 años, 8 meses
Puntos: 0
frame se me cierra

Hola comunidad, tengo una duda que me esta rompiendo la cabeza.
estoy haciendo una agenda con dos archivos (contactos, y eventos)
y quiero que cuando el frame se cierre salte un Frame o un dialog que tiene 4 botones para preguntarle si quiere guardar los cambios (SI, solo en Contactos, solo en Eventos, no)

el problema es que cuando le doy a la cruz del frame se cierra y no me la muestra

aclaro un par de cosas


al frame le agrege un Windowlstener con inner class, y ahi implemente el WindowClosing y hago se fije mediante una banderas si hubo cambios en los contactos o en los eventos, si no hubo cambios q haga el dispose, sino que lance el frame de los 4 botones.

tambien le puse al frame el setdefaultcloseoperation(Do_nothing_on_close)
esto lo hago al principio cuando se crea el formulario.

les adjunto el codigo

public AgendaView(SingleFrameApplication app) {
super(app);


getFrame().setDefaultCloseOperation(getFrame ().DO_NOTHING_ON_CLOSE);
getFrame().setResizable(false);
getFrame().setPreferredSize(new Dimension(800,600));
getFrame().setTitle("Agenda v1.0");
getFrame().addWindowListener(new WindowHandler());
....
...
....
}

class WindowHandler implements WindowListener{

public void windowOpened(WindowEvent e) {}

public void windowClosing(WindowEvent e) {
if((AgendaApp.contactFile.updated)&&(AgendaApp.eve ntFile.updated)){
getFrame().dispose();
}else{
saveFrame.setVisible(true);
saveFrame.setLocation(450,250 );
saveFrame.pack();
}



}

public void windowClosed(WindowEvent e) {}

public void windowIconified(WindowEvent e) {}

public void windowDeiconified(WindowEvent e) {}

public void windowActivated(WindowEvent e) {}

public void windowDeactivated(WindowEvent e) {}

}
  #2 (permalink)  
Antiguo 15/08/2010, 20:59
 
Fecha de Ingreso: abril-2010
Ubicación: Manizales
Mensajes: 91
Antigüedad: 14 años
Puntos: 2
Respuesta: frame se me cierra

dos cosas:

Para tu duda, lo creo q el if deberia ser de otra manera, lo que estas preguntando ahi es: si las dos cosas se actualizaron cerrar la ventana, si esto esta correcto es porque no te entiendo lo que me dices.

Segundo la clase WindowAdapter declara los métodos de WindowListener y tu puedes sobreescribir los que necesites, para que te ahorres hacer lo de:

public void windowClosed(WindowEvent e) {}

public void windowIconified(WindowEvent e) {}

public void windowDeiconified(WindowEvent e) {}

public void windowActivated(WindowEvent e) {}

public void windowDeactivated(WindowEvent e) {}

simplemente pones a que tu clase herede de WindowAdapter y no de WindowListner asi solo sobreescribes el método windowClosing
__________________
pensando en Bytecodes

Etiquetas: frame, swing
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:45.