Internal Frame mit Nachfrage schließen

Status
Nicht offen für weitere Antworten.

HakBak

Aktives Mitglied
Ich bin auf ein Problem gestoßen. Ich möchte einen Internal Frame über das x schließen, dabei soll allerdings nachgefragt werden ob, wirklich geschlossen werden soll und es soll überprüft werden, ob sich die Daten innerhalb des Internal Frames geändert haben. Bei meinem Hauptfenster hat das auch alles wunderbar geklappt, aber bei dem internal Frame hab ich Probleme.
Bei dem folgenden Code geht es mit erstmal darum, dass der internal Frame nicht geschlossen wird, wenn die daten noch nicht gespeichert sind.
Hier ist mal der Codeausschnitt:
Code:
private void initialize() {
		this.setContentPane(getJTabbedPane());
		this.setBounds(500, 277, 500, 420);
		this.setName("Einstellungen");
		this.setTitle("Einstellungen");
		this.setClosable(true);
		this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
		//TODO
		this.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() { 
			public void internalFrameClosing(javax.swing.event.InternalFrameEvent e) {    
				steuerungE.gibMod(); // gibt den Zustand, ob die Daten modifiziert wurden
				if (mod == true) // ueberprueft den Zustand der Modifizierung
				{
					int frage = JOptionPane.showConfirmDialog(desktop, "Daten noch nicht gespeichert, jetzt speichern?", 
							"Frage", JOptionPane.YES_NO_OPTION);
					if (frage == JOptionPane.YES_OPTION) // Frage, ob gespeichert werden soll, oder nicht
					{
						try {
							steuerungE.speichereEinstellungen();//Einstellungen werden gespeichert
						} catch (FileNotFoundException e1) {
							
							e1.printStackTrace();
						} catch (IOException e1) {
							
							e1.printStackTrace();
						}
					}
					else 
					{
						fensterSchliessen(); //Methode, die ein Fenster schliesst
					}
				}
				else
				{
					fensterSchliessen();
				}
			}
		});
		

	}
Ich hatte schon einiges ausprobiert, und habtte so ziehmlich alles von Endlosschleife bis dahin, dass GARNIX passiert :)
Bei der Version gibts nen Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
Bin im Augenblick ein wenig ratlos.
Danke
 
G

Guest

Gast
Code:
WENN(Fenster schliessen)
  setDefaultCloseOperation(DISPOSE_ON_CLOSE);
SONST
  setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
 

HakBak

Aktives Mitglied
Wie sprech ich dann das ganze mit dem x-Buttone rechts oben an?
Das, was du mir gerade geschrieben hast, verwende ich, so ähnlich, bei einem einfachen Schliesse-Button. Aber wie mach ich das ganze mit dem x-knopf recht oben???
Danke
 
G

Guest

Gast
Wird das Fenster geschlossen, egal wie, wird die Methode "internalFrameClosing" aufgerufen.
Dort sagst Du mit DO_NOTHING_ON_CLOSE nöö will ich nicht, mit DISPOSE_ON_CLOSE
akzeptierst Du das Schliessen.
 

HakBak

Aktives Mitglied
Vielleicht steh ich grad weng auf dem Schlauch. Aber was soll ich denn als if - Anweisung nehmen?
die methode internalFrameClosing muss doch irgendwas zurückgeben, mit dem ich arbeiten kann?
Sorry, falls es grad weng länger dauert bei mir :)
 
G

Guest

Gast
So ungefähr.
Code:
public void internalFrameClosing(InternalFrameEvent e)
{
  if(datenGeaendert())
  {
    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

    int frage = JOptionPane.showConfirmDialog(desktop, "Daten noch nicht gespeichert, jetzt speichern?", "Frage", JOptionPane.YES_NO_CANCEL_OPTION );
    if(frage == JOptionPane.YES_OPTION)
    {
      try
      {
        datenSpeichern();
      }
      catch(...) // Fehler, nicht schliessen
      {
        JOptionPane.showMessageDialog(desktop,"Fehler blabla", "Fehler...", JOptionPane.ERROR_MESSAGE);
        return;
      }
    }
    else if(frage == JOptionPane.CANCEL_OPTION) // Abbrechen, nicht schliessen
    {
      return;
    }
    // JOptionPane.NO_OPTION einfach schliessen
  }
  setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
 

HakBak

Aktives Mitglied
Ok,
fast alles ist wunderbar :)
Also gut:
es wird nun brav überprüft, wenn ich oben auf das X klicke, ob sich was geändert hat und es wird brav nachgefragt.
Ich hab allerdings noch einen Schliesse-Button auf meinem internal Frame. Er besitzt nur einen Listener, der die Methode
fensterSchliessen() ausführt.
Code:
private void fensterSchliessen ()
	  {
	    try
	    {
	      this.setClosed(true);
	    }
	    catch (Exception e)
	    {
	      JOptionPane.showMessageDialog(desktop, "Fehler", "Fehler", 
	      		JOptionPane.ERROR_MESSAGE);
	    }

Meiner Meinung nach müsste jetzt, dadurch, dass das Fenster geschlossen wird, der internalFrameClosing Adapter angesprochen werden. :) Er tut es auch, aber das Fenster wird am Ende geschlossen obwohl es das nicht sollte. Wenn ich das Fesnter mit dem x-Button schliesse, bleibt das Fenster an der gleichen Stelle offen (so soll es auch sein, es werden nämlich noch diverse Fehler abgefangen)
An was liegt das?
 
G

Guest

Gast
Lese doch nach, was setClosed(true) tut.
Verwende lieber doDefaultCloseAction().
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Internal Frame in den vordergrund AWT, Swing, JavaFX & SWT 4
M Namen eines Internal Frame auslesen AWT, Swing, JavaFX & SWT 6
T Image auf Panel in einem Internal Frame zeichnen AWT, Swing, JavaFX & SWT 5
M Internal Frames und Canvas-Element AWT, Swing, JavaFX & SWT 9
Neumi5694 internal property vermeiden AWT, Swing, JavaFX & SWT 0
R Swing Wie kann man Internal Frames automatisch ausrichten lassen? AWT, Swing, JavaFX & SWT 3
G Lage von Internal Frames AWT, Swing, JavaFX & SWT 5
Wildcard Internal Frames und JDialog AWT, Swing, JavaFX & SWT 4
Fragerjava Frame inhalt komplett löschen AWT, Swing, JavaFX & SWT 4
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
Kotelettklopfer Frame ändert Farbe nicht AWT, Swing, JavaFX & SWT 12
P Swing Zufallsbilder auf Frame ausgeben AWT, Swing, JavaFX & SWT 1
D AWT Wie kann ich ein Frame von einem anderen aus beeinflussen? AWT, Swing, JavaFX & SWT 7
R 2D-Grafik Massive Frame Drops beim Benutzen von AffineTransformOp AWT, Swing, JavaFX & SWT 2
C Swing F5 Taste neu laden auf ganzen Frame AWT, Swing, JavaFX & SWT 9
J Genutzte Methoden in einen Frame einbauen AWT, Swing, JavaFX & SWT 21
H Swing Frame an andere Klassen weitergeben AWT, Swing, JavaFX & SWT 4
olfibits Swing JavaFX-Frame in JDesktopPane darstellen? AWT, Swing, JavaFX & SWT 2
F Swing Frame nach vorne holen AWT, Swing, JavaFX & SWT 2
J Panel auf Frame positionieren AWT, Swing, JavaFX & SWT 9
K Frame aus anderer Klasse schließen AWT, Swing, JavaFX & SWT 3
F AWT mehrere Panels in einem Frame AWT, Swing, JavaFX & SWT 17
S Tastatur frame nur nur 1 mal öffnen AWT, Swing, JavaFX & SWT 1
T Swing Java-Frame bei Programmstart NICHT im Vordergrund öffnen AWT, Swing, JavaFX & SWT 2
A Programm nun in ein Frame basteln AWT, Swing, JavaFX & SWT 1
T Frame öffnet nicht AWT, Swing, JavaFX & SWT 1
A Swing GUI - Button soll Frame verändern AWT, Swing, JavaFX & SWT 4
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
S mit keylistener frame schliessen AWT, Swing, JavaFX & SWT 8
Thallius Wer oder was bestimmt welches Frame toFront kommt wenn ein anderes geschlossen wird? AWT, Swing, JavaFX & SWT 8
Z Swing Frame wird geöffnet, aber ist ohne Inhalt AWT, Swing, JavaFX & SWT 0
J Panel auf Frame löschen und neues Panel Hinzufügen AWT, Swing, JavaFX & SWT 4
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
S NetBeans, Panel in Frame einfügen AWT, Swing, JavaFX & SWT 3
Tausendsassa Frame öffnet aber zeigt keinen Inhalt... AWT, Swing, JavaFX & SWT 10
Tom299 JavaFX Ähnliche Komponente wie der VB6 Frame? AWT, Swing, JavaFX & SWT 2
L Swing Frame in Thread wird nicht gezeichnet AWT, Swing, JavaFX & SWT 2
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
D Buttons erscheinen nicht auf Frame AWT, Swing, JavaFX & SWT 2
M Swing Probleme mit Frame.pack() AWT, Swing, JavaFX & SWT 1
B Frame hängt sich auf trotz invokeLater AWT, Swing, JavaFX & SWT 1
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
M JavaFX wie kann mann sein frame mit einem Icon fersehen? AWT, Swing, JavaFX & SWT 2
Z Canvas in Frame einfügen. Problem mit 4-Gewinnt AWT, Swing, JavaFX & SWT 1
P Frame friert ein AWT, Swing, JavaFX & SWT 6
Z Frame mit Rechteck! AWT, Swing, JavaFX & SWT 16
Messoras JWindow/Frame durch das man durchklicken kann AWT, Swing, JavaFX & SWT 5
M Swing "Frame.setResizable(false);" verschiebt Content? AWT, Swing, JavaFX & SWT 9
X Swing 1 JButton bedeckt meine ganze Frame aber Warum? AWT, Swing, JavaFX & SWT 2
J JTable aktuallisieren über anderen Frame AWT, Swing, JavaFX & SWT 6
J JTable Zeile anklicken und neues Frame öffnen AWT, Swing, JavaFX & SWT 4
S Quadrat auf Frame zeichnen AWT, Swing, JavaFX & SWT 2
B JFrame immer an gleicher stelle auf anderem Frame AWT, Swing, JavaFX & SWT 5
F JAVA-EDITOR: Panel in Frame aufnehmen AWT, Swing, JavaFX & SWT 3
B Swing JMenuBar unten in der Frame setzen? AWT, Swing, JavaFX & SWT 15
U Frame zeigt keine Komponenten AWT, Swing, JavaFX & SWT 7
L JButton im Frame fest verankern AWT, Swing, JavaFX & SWT 0
D Buttons erscheinen nicht auf dem zweiten Frame AWT, Swing, JavaFX & SWT 4
X Swing Größe eines Fensters JFrame / Frame AWT, Swing, JavaFX & SWT 5
BRoll Frame- Video einbinden machbar? AWT, Swing, JavaFX & SWT 6
Kandum obj_JMenu.addMenuListener - variable Anzahl an JMenus / menulistenern & frame.setTitle() dynamisch AWT, Swing, JavaFX & SWT 7
B Frame always on top nur auf anderem Frame AWT, Swing, JavaFX & SWT 9
S Aufteilung von JPanels in einem Frame AWT, Swing, JavaFX & SWT 13
K Options-Frame integrieren (zum zuschalten und wegschalten wie geht man da ran? AWT, Swing, JavaFX & SWT 7
J Frame mit Button erstellen - Warum ist es nötig, Frame über Unterklasse zu erstellen? (Reg Listener) AWT, Swing, JavaFX & SWT 2
N Swing Endlosschleife blockt Frame AWT, Swing, JavaFX & SWT 11
B Swing JDialog modal, aber trotzdem Frame auswählbar AWT, Swing, JavaFX & SWT 2
N Swing Frame ungewollt transparent! AWT, Swing, JavaFX & SWT 2
J Kleines Anzeige Problem(nur blanker Frame) AWT, Swing, JavaFX & SWT 22
D Neues Frame öffnen - und dazu altes schließen AWT, Swing, JavaFX & SWT 5
Daniel_L Drop von Dateien auf Frame - welche Drop-Location? AWT, Swing, JavaFX & SWT 2
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
C LookAndFeel Frame updated nicht vollständig AWT, Swing, JavaFX & SWT 9
K 3D-Grafik Canvas ist ein eigener Frame?! AWT, Swing, JavaFX & SWT 13
L Jbutton + jcombobox mit vorhandenen frame verknüfen AWT, Swing, JavaFX & SWT 8
J 2 Bereiche im Frame komplett nutzen - Welchen Layoutmanager? AWT, Swing, JavaFX & SWT 3
Z Swing JTextfield auf Frame AWT, Swing, JavaFX & SWT 13
N Swing Frame mit GlassPane und Popup AWT, Swing, JavaFX & SWT 5
L Frame Schließen und neustarten AWT, Swing, JavaFX & SWT 4
L Mehre Panels einen Frame zuweisen AWT, Swing, JavaFX & SWT 11
P Frame "always on top" und welche GUI? AWT, Swing, JavaFX & SWT 5
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
S JMenuBar Frame Abstand AWT, Swing, JavaFX & SWT 3
J Swing Frame öffnen aus Frame mit JButton AWT, Swing, JavaFX & SWT 2
X Alte Frame-Größe beim wiederholten Aufruf AWT, Swing, JavaFX & SWT 5
M erstes Frame wartet auf die Auswertung eines zweiten AWT, Swing, JavaFX & SWT 8
J Frame-Steuerelement AWT, Swing, JavaFX & SWT 2
L Swing Flackern in Frame bei erstem Klick AWT, Swing, JavaFX & SWT 19
F Hintergrundbild im Frame AWT, Swing, JavaFX & SWT 11
S Zeichnen führt zu transparentem Frame AWT, Swing, JavaFX & SWT 6
S Swing Frame und Klasse extends JPanel - Komponenten zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 18
B Frame im Frame? AWT, Swing, JavaFX & SWT 4
C WindowListener Frame AWT, Swing, JavaFX & SWT 8
P klassenübergreifendes Frame AWT, Swing, JavaFX & SWT 6
B Text soll nich über das Frame hinausgehen AWT, Swing, JavaFX & SWT 5
J Hintergrund Label-Frame AWT, Swing, JavaFX & SWT 3
Spin JFrame/ Frame Drag and Drop AWT, Swing, JavaFX & SWT 13
S Swing Panelgröße anpassen wenn Frame maximiert wird AWT, Swing, JavaFX & SWT 2
K MouseListener für Objekte auf einem Frame AWT, Swing, JavaFX & SWT 4
3 Eigenes Frame/Window programmieren AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben