Hola:
¿Cómo puedo detectar cuando se cierra un JInternalFrame con la X de arriba?
Quiero hacer lo típico de cuando cierras un documento que te pregunte si quieres guardar los cambios, ¿esa ventanita sería un jDialog?
internalFrame.addInternalFrameListener(new InternalFrameListener() {
@Override
public void internalFrameClosing(InternalFrameEvent arg0) {}
@Override public void internalFrameOpened(InternalFrameEvent arg0) {}
@Override public void internalFrameIconified(InternalFrameEvent arg0) {}
@Override public void internalFrameDeiconified(InternalFrameEvent arg0) {}
@Override public void internalFrameDeactivated(InternalFrameEvent arg0) {}
@Override public void internalFrameClosed(InternalFrameEvent arg0) {
//....
}
@Override public void internalFrameActivated(InternalFrameEvent arg0) {}
});
primero tines que hacer que no haga nada a la hora de presionar la x
jInternalFrame1.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
luego tienes que agregarle un listener para que este atento a la hora de cerrar el programa
jInternalFrame1.addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) {
jInternalFrame1InternalFrameClosing(evt);
}
public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) {
}
});
no te preocupes por lo horriblemente largo que se ve igual el ide te autogenera todo el codigo
y finalmente para que poner terminar
private void jInternalFrame1InternalFrameClosing(javax.swing.event.InternalFrameEvent evt) {
int opcion = JOptionPane.showConfirmDialog(this, "desea guardar", "mi titulo", JOptionPane.YES_NO_OPTION);
if (opcion == JOptionPane.YES_OPTION) {
guardaInformacion();
jInternalFrame1.dispose();
}
}
ok. Ya entiendo, con el InternalFrameListener.
jeje... llevaba tanto tiempo sin tocar las ventanitas que no me acordaba ya de que el ide te generaba el codigo :silbar:
gracias.