[Java] [GELÖST] Geschlossenes JFrame wieder öffnen.

Übersicht Andere Programmiersprachen Allgemein

Neue Antwort erstellen

US-Blitz

ehemals "SimssmiS"

Betreff: [Java] [GELÖST] Geschlossenes JFrame wieder öffnen.

BeitragMo, Apr 15, 2013 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,
ja ich bins wieder Very Happy .

Mein aktuelles Problem ist folgendes.
Mein Programm ist ein Map-Editor, der 3 JFrames nutzt. Wird der Haupt-Frame geschlossen, wird auch das Programm beendet. Die anderen Fenster sollen jedoch schließbar, aber vor allem auch wieder zu öffnen sein.
Dazu habe ich eine JMenuBar im HauptFrame hinterlegt und dort Optionen zum öffnen eingefügt und diesen ActionListeners verpasst.
Problem ist jedoch ich habe keine Ahnung was in diese hinein soll.
Wie öffne ich ein JFrame, welches per x geschlossen wurde.
Könnt ihr mir da weiterhelfen?
  • Zuletzt bearbeitet von US-Blitz am Mo, Apr 15, 2013 22:08, insgesamt 2-mal bearbeitet

Eingeproggt

BeitragMo, Apr 15, 2013 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab dieses Problem zwar noch nie gehabt / bewältigt, aber nach kurzer Google Suche fand ich dies:
http://stackoverflow.com/quest...e-on-close

Und da vor allem die Antwort:
Code: [AUSKLAPPEN]
JFrame f = new JFrame("Test");
f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
[...]
f.setVisible(true);
f.setState(JFrame.NORMAL);


Also mit den letzten 2 Zeilen sollte das gehn was du dir wünscht?

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Addi

BeitragMo, Apr 15, 2013 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Trick ist es, das Fenster zu verstecken anstatt es zu schließen.
Dazu musst du entweder wieder eine SubKlasse erstellen und da das
WindowListener Interface implementieren oder du implementierst es gleich in der Klasse.
Mit diesem Interface bekommst du einige Methoden, die es dir erlauben z.B.
zu überprüfen, ob der CloseButton des Fenstersgedrückt wurde.

Anstatt das JFrame über setDefaultCloseOperation(...) schließen zu lasse, übergibst du an das Fenster nun den WindowListener.

Du kannst es auch so machen wie Eingeproggt es beschrieben hat, allerdings hast du durch den WindowListener viel mehr Möglichkeiten:
Du kannst auch schauen, ob das Fenster aktiviert/deaktiviert wurde und so wie du willst darauf reagieren lassen etc.

Beispiel:
Code: [AUSKLAPPEN]
...
   Public Iregendwas()
   {
      frame = New JFrame("Hallo");
      frame.setSize(800, 600);
      frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
      frame.addWindowListener(new WindowHandler());
      frame.setVisible(true);
   }

   private class WindowHandler implements WindowListener{
      public void windowActivated(WindowEvent arg0) {
      }
      public void windowClosed(WindowEvent arg0) {
      }
      public void windowClosing(WindowEvent arg0) {
         //Hier das Fenster verstecken
         frame.setVisible(false);
      }
      public void windowDeactivated(WindowEvent arg0) {
      }      
      public void windowDeiconified(WindowEvent arg0) {         
      }
      public void windowIconified(WindowEvent arg0) {
      }
      public void windowOpened(WindowEvent arg0) {
      }
   }
}
BP/B3D/BMax : Lerne Java : Früher mal Lite-C : Gewinner BCC 62

US-Blitz

ehemals "SimssmiS"

BeitragMo, Apr 15, 2013 22:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke und schon wieder was dazu gelernt.

Ich habe mich entschieden Eingeproggts Methode zu benutzen. Dort kann ich ja auch mit Hilfe von isVisible() sehen ob das Fenster zu sehen ist und das ist alles was ich brauche.

GELÖST

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group