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();
}
}