java - ventana - ¿Cómo ejecutar un método solo después de que se ha cerrado un marco?
evento cerrar ventana java (2)
Así que, básicamente, Class2 es una clase que ejecuta otro marco en la parte superior de mi marco existente. Quiero que el método se ejecute solo cuando se haya cerrado el nuevo marco. ¿Cómo puedo hacer esto?
La mejor solución es usar diálogos modales como JOptionPane o un JDialog modal. Esto detendrá el procesamiento del código Swing en la ventana principal hasta que se haya tratado la ventana de diálogo y ya no esté visible. Entonces su refreshState puede ejecutarse inmediatamente después de que se haya cerrado el diálogo:
Pseudocódigo:
main window code
show modal dialog
refresh state here. This will be called only after the dialog has returned.
Por lo tanto, mi código ahora se ve así:
Class2 className = new Class2(param1, param2);
className = null;
if (Class2 == null) {
refreshState();
}
Quiero que el método refreshState
se ejecute una vez que se destruye el objeto className
. Así que, básicamente, Class2
es una clase que ejecuta otro marco en la parte superior de mi marco existente. Quiero que el método se ejecute solo cuando se haya cerrado el nuevo marco. ¿Cómo puedo hacer esto?
Yo diría agregar un java.awt.event.WindowListener al marco:
class2.getFrame().addWindowsListener(new WindowAdapter() {
public void windowClosed(WindowEvent we) {
// The frame is closed, let''s dot something else
refreshState();
}
}