JInternalFrame Schliessvorgang abbrechen

ZeroEnna

Erfahrenes Mitglied
Hallo allerseits

Ich habe folgendes Problem:
Ich habe einen Texteditor in einem JInternalFrame. Wenn der User die Änderungen noch nicht gespeichert hat, wird er - wie bei jedem Standardeditor - vor dem Schliessen gefragt ob er die Änderungen speichern will.
Wenn er nun auf Abbrechen klickt, soll das JInternalFrame nicht geschlossen werden. Und genau hier liegt das Problem, wie bringe ich es hin das die DefaultCloseOperation nicht ausgeführt wird.
Als DefaultCloseOperation habe ich HIDE_ON_CLOSE und einen InternalFrameListener habe ich auch schon implementiert.

Ich hoffe ihr könnt mir da weiterhelfen.
Vielen Dank.

mfG
ZeroEnna
 
Hallo!

Schau mal hier:
Code:
 /**
  * 
  */
 package de.tutorials;
 
 import java.awt.Dimension;
 
 import javax.swing.JDesktopPane;
 import javax.swing.JFrame;
 import javax.swing.JInternalFrame;
 import javax.swing.JOptionPane;
 import javax.swing.event.InternalFrameAdapter;
 import javax.swing.event.InternalFrameEvent;
 
 /**
  * @author Tom
  * 
  */
 public class JInternalFrameExample extends JFrame {
 
 	public JInternalFrameExample() {
 		super("JInternalFrameExample");
 		setDefaultCloseOperation(EXIT_ON_CLOSE);
 
 		JDesktopPane desktopPane = new JDesktopPane();
 		desktopPane.setPreferredSize(new Dimension(640, 480));
 
 		JInternalFrame internalFrame = new JInternalFrame("tutorials.de", true,
 				true, true, true);
 		internalFrame.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
 		internalFrame.addInternalFrameListener(new InternalFrameAdapter() {
 
 			public void internalFrameClosing(InternalFrameEvent e) {
 				int selectedOption = JOptionPane
 		    		    .showConfirmDialog(e.getInternalFrame(),
 		    		    		"Do you want to close this frame?");
 				if (selectedOption == JOptionPane.YES_OPTION) {
 					e.getInternalFrame().dispose();
 				}
 			}
 		});
 
 		internalFrame.setSize(160, 120);
 		internalFrame.setVisible(true);
 		desktopPane.add(internalFrame);
 
 		add(desktopPane);
 
 		pack();
 		setVisible(true);
 	}
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		new JInternalFrameExample();
 	}
 
 }

Gruß Tom
 
Jo sa habe ich es mittlerweile auch gemacht.
Wäre aber praktisch gewesen wenn man den Schliessvorgang abbrechen hätte abbrechen können.

Trotzdem, vielen Dank das du mir mal wider weitergeholfen hast.

mfG
ZeroEnna
 

Neue Beiträge

Zurück