Beide Fenster schliessen sich

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi,

ich habe mir ein JFrame A und ein JFrame B gebastelt.

Wenn ich in JFrame A ein Button drücke erscheint, wie von mir gewollt das JFrame B.
Mein Problem ist, dass sich das JFrame B auch schließt, wenn ich das JFrame A nur schließen möchte.

Hier mein Code zum öffnen des JFrame B im JFrame A:
Code:
button4 = new JButton();
button4.setText("Change");
button4.setPreferredSize(new Dimension (150,20));//setzt den Button auf eine best. Größe
button4.setActionCommand("JFrame");
button4.addActionListener(new KlasseActionEvent()
	{
		public void actionPerformed(ActionEvent ae)
	{
			if(ae.getActionCommand().equals("JFrame"))
				{
				   BMW bmw = new BMW();
               bmw.setVisible(true);
				   bmw.pack();
				   bmw.setLocation(150,100);																			}												
             }
});

Ich würde das gerne so einrichten, dass ich JFrame A schließen kann ohne, dass sich JFrame B mitschließt.

Wäre für jeden Tipp dankbar. :D


gruß monet
 

Ellie

Aktives Mitglied
Wahrscheinlich schließt du beide Fenster über System.exit(0), du brauchst aber bei den Hilfsfenstern frame.dispose();.
 

lolkind

Mitglied
entweder dies :meld:
oder du rufst innerhalb von JFrame_A B auf, somit schließt es sich immer B wenn du A schließt, andersrum müsste es aber funktionieren!?
 
G

Guest

Gast
Hi Ellie,

danke erstmal für deine Antwort.

Ellie hat gesagt.:
Wahrscheinlich schließt du beide Fenster über System.exit(0), du brauchst aber bei den Hilfsfenstern frame.dispose();.

Also, ich habe zwei Fenster, die sich in jeweils unterschiedlichen Packages befinden. Das von mir angebene Code-
fragment befindet sich im Fenster A und ruft eine Instanz des Fenster B auf. Dadurch wird das Fenster auch sicht-
bar (was auch gewollt ist)
Was "System.exit(0)" angeht, stimm, ich habe die in beiden Fenstern, weil dies auch seperat geöffnet werden
sollen. Das Fenster A Fenster B aufruft ist nur eine weiter Funktion.

oder du rufst innerhalb von JFrame_A B auf, somit schließt es sich immer B wenn du A schließt, andersrum müsste es aber funktionieren!?
von lolkind

Das möchte ich eben vermeiden. Ich möchte ja nicht, dass sich Fenster B mitschließt, wenn Fenster A, das Fenster B
aufgerufen hat geschlossen wird.

danke für eure Hilfe,

monet
 

Leroy42

Top Contributor
Wie gesagt:
Code:
frame.dispose();.

Das System.exit(0) sollte nur an einer Stelle in der Applikation aufgerufen werden.
 
K

Körby

Gast
Anonymous hat gesagt.:
Also, ich habe zwei Fenster, die sich in jeweils unterschiedlichen Packages befinden. Das von mir angebene Code-
fragment befindet sich im Fenster A und ruft eine Instanz des Fenster B auf. Dadurch wird das Fenster auch sicht-
bar (was auch gewollt ist)

Wenn du in Fenster A eine Instanz von Fenster B aufrufst wird diese Instanz von Fenster B geschlossen, wenn Fenster A geschlossen wird.
Besser wäre, wenn Fenster A eine Methode in einer anderen Klasse aufrufen würde. In dieser Methode solltest du dann eine Instanz von Fenster B aufrufen.
 

Leroy42

Top Contributor
Körby hat gesagt.:
Wenn du in Fenster A eine Instanz von Fenster B aufrufst wird diese Instanz von Fenster B geschlossen, wenn Fenster A geschlossen wird.
Besser wäre, wenn Fenster A eine Methode in einer anderen Klasse aufrufen würde. In dieser Methode solltest du dann eine Instanz von Fenster B aufrufen.

Das verstehe jetzt ja noch nicht mal ich! ???:L

(Hab gestern und heute doch gar nichts gesoffen :shock: )
 

lhein

Top Contributor
Klingt wirklich wie "übern Arsch ins Ohr". ;)
@Körby: Hast Du heut schon was getrunken? Das von Dir beschriebene Verhalten wäre mir ehrlich gesagt neu.
 
G

Guest

Gast
Leroy42 hat gesagt.:
Das System.exit(0) sollte nur an einer Stelle in der Applikation aufgerufen werden.

Es wird ja nur an einer Stelle im Code aufgerufen und zwar hinter main (aber in beiden Applikationen, denn diese
sollen ja auch unabhängig voneinander Funktionieren).

Code:
....public static void main(String[] args)
{
     BMW f = new BMW();

        WindowListener frame = new KlasseWindowClosing()
            {
                public void windowClosing(WindowEvent we)
                    {
                        System.exit(0);
                    }
            };

        f.addWindowListener(frame);
        f.setVisible(.........
........
}

Aber was ich noch wissen wollte (ich stehe heute echt auf der Leitung), wo setze ich
Code:
frame.dispose();.

ein? In meinem ersten, oben genannten Codefragment :bahnhof:



Wenn du in Fenster A eine Instanz von Fenster B aufrufst wird diese Instanz von Fenster B geschlossen, wenn Fenster A geschlossen wird.
Besser wäre, wenn Fenster A eine Methode in einer anderen Klasse aufrufen würde. In dieser Methode solltest du dann eine Instanz von Fenster B aufrufen.
Ist das nicht umständlich?? Aber ein guter Tipp


Danke,

monet
 

lhein

Top Contributor
Ich glaube so langsam würfelst Du hier alles durcheinander.

1. Du hast nur eine Applikation mit 2 Frames. (denn alle Tipps beziehen sich auf diesen Sachverhalt) Sollte das nicht so sein, dann ist das ein ganz anderer Sachverhalt. Wenn Du in beiden Klassen eine main() hast, dann weist es eher darauf hin, daß Du gerne 2 unabhängige Applikationen haben willst. Das solltest Du evtl. mal überlegen und hier klarstellen.

2. frame.dispose ist dort unterzubringen, wo Du das Fenster schliessen willst. Bei einem Knopfdruck wäre das evtl. ein ActionListener.

3. bin ich grad ziemlich verwirrt ;)

lr
 
G

Guest

Gast
Anonymous hat gesagt.:
Hier mein Code zum öffnen des JFrame B im JFrame A:
Code:
button4 = new JButton();
button4.setText("Change");
button4.setPreferredSize(new Dimension (150,20));//setzt den Button auf eine best. Größe
button4.setActionCommand("JFrame");
button4.addActionListener(new KlasseActionEvent()
	{
		public void actionPerformed(ActionEvent ae)
	{
			if(ae.getActionCommand().equals("JFrame"))
				{
				   BMW bmw = new BMW();
                                                                   bmw.setVisible(true);
				   bmw.pack();
				   bmw.setLocation(150,100);																			}												
             }
});

LR hat gesagt.:
Klingt wirklich wie "übern Arsch ins Ohr". ;)
@Körby: Hast Du heut schon was getrunken? Das von Dir beschriebene Verhalten wäre mir ehrlich gesagt neu.

Ich hab noch nichts getrunken...

Es wird mit "BMW bmw = new BMW();" die Instanz des zweiten Fensters erzeugt und so wie ich das verstanden hab geschieht dies im ersten Fenster. Wenn ich nicht total falsch liege, müsste nun aber, wenn das erste Fenster geschlossen wird auch die nur in diesem Fenster existierende Instanz "bmw" beendet werden, also das zweite Fenster.

Deshalb würde ich die Instanz auch nicht im ersten Fenster erzeugen, sondern dort eine Methode aus einer anderen Klasse aufrufen, damit diese die Instanz des zweiten Fensters erzeugt und dieses somit vom ersten Fenster unabhängig wird.
 

Leroy42

Top Contributor
Körby hat gesagt.:
müsste nun aber, wenn das erste Fenster geschlossen wird auch die nur in diesem Fenster existierende Instanz "bmw" beendet werden, also das zweite Fenster.

Nein! Das Schließen des ersten Fensters bewirkt kein automatisches
Schließen, der in diesem Fenster existierenden Fenster-Instanzen anderer Fenster.

(Ich hoffe mal, deinen Schreibstil einigermaßen getroffen zu haben :cool: )
 

lhein

Top Contributor
@Körby:

Also ich weiss ja nicht, was Du für ein JRE hast, aber bei mir bleibt FrameB offen, was ich ehrlich gesagt auch erwartet habe. Es wird nur dann Frame B geschlossen, wenn beim Beenden von Frame A auch gleichzeitig die komplette Applikation beendet wird.

lr
 
K

Körby

Gast
Hmm...ich meine mir hat mal einer erklärt, das wenn eine Objekt oder ein Thread oder ein Fenster geschlossen wird, alle nur in diesem vorhanden Instanzen ebenfalls beendet werden.

Vielleicht irre ich mich, oder der hatte sich vertan.
 
G

Guest

Gast
Danke erstmal an alle :)

LR hat gesagt.:
1. Du hast nur eine Applikation mit 2 Frames. (denn alle Tipps beziehen sich auf diesen Sachverhalt) Sollte das nicht so sein, dann ist das ein ganz anderer Sachverhalt. Wenn Du in beiden Klassen eine main() hast, dann weist es eher darauf hin, daß Du gerne 2 unabhängige Applikationen haben willst. Das solltest Du evtl. mal überlegen und hier klarstellen.

Ich kann mich heute irgendwie nicht ausdrücken....Sorry :oops:

Stimmt, ich habe in jedem Fenster eine eigene "public static void main(String[] args)....".

Hiermit stelle ich klar:
dass ich zwei unabhängige Applikationen habe. Jede Applikation hat eine
eigene "public static void main(String[] args)....".

Kann man das dann anderes lösen, ohne eine dritte Klasse bilden zu müssen, die die Methode besitzt
um ein anderes Fenster aufzurufen??

Ich kann mir auch nur vorstellen, dass alle enthalten Instanzen beendet werden, wenn die Applikation
beendet wird.


Ich hoffe mein Problem wurd jetzt deutlicher :bahnhof:

danke schön,

monet
 

Leroy42

Top Contributor
Triebi hat gesagt.:
@Körby: Welche DefaultCloseOperation ist bei den Frames gesetzt?

Stimmt! Wenn es EXIT_ON_CLOSE ist, (Seit 1.5 Default), kann der Eindruck
entstehen, daß die gesamte Applikation geschlossen wird sobald
ein Fenster geschlossen wird.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Warum schliessen sich beide Fenster? Java Basics - Anfänger-Themen 5
CptK Interface Beide Panels zeigen das Gleiche Java Basics - Anfänger-Themen 2
A Klassen Geschachtelte Klassen - Hat das Objekt dann beide Klassen? Java Basics - Anfänger-Themen 4
B Socket Kommunikation in beide Richtungen Java Basics - Anfänger-Themen 12
D Ein Objekt erzeugt ein anderes Objekt - Wie beide Objekte abspeichern? Java Basics - Anfänger-Themen 5
U Bei der Asuführung einer Klasse, werden beide angezeigt Java Basics - Anfänger-Themen 4
P Beide frames werden geschlossen Java Basics - Anfänger-Themen 2
R void? static? beide? garnichtst von beiden? Java Basics - Anfänger-Themen 11
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
J Überprüfen ob ein Fenster offen ist? Java Basics - Anfänger-Themen 8
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
celta_vigo Konsolen-Fenster ist weg Java Basics - Anfänger-Themen 5
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
M PNG als Spieler im Fenster anzeigen Java Basics - Anfänger-Themen 4
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
A Eclipse-Fenster starten statt Konsoleausgabe Java Basics - Anfänger-Themen 2
A Fenster bleibt weiß Java Basics - Anfänger-Themen 7
O Fenster programmieren Java Basics - Anfänger-Themen 2
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
A Fenster programmieren Java Basics - Anfänger-Themen 1
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
J Best Practice DOS Fenster mit Befehlszeile (Lösung) Java Basics - Anfänger-Themen 2
J Fenster wieder unsichtbar machen Java Basics - Anfänger-Themen 2
das_leon Gesamtes Programm in einem Fenster Java Basics - Anfänger-Themen 1
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
W Es wird erst gezeichnet, wenn ich das Fenster vergrößere? Java Basics - Anfänger-Themen 20
K Interface Fenster mit 3 ComboBoxen und 1 Button Java Basics - Anfänger-Themen 13
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
I Fenster A soll Fenster B schliessen Java Basics - Anfänger-Themen 5
D Java Fenster blockiert ? Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
A Popup-Fenster Java Basics - Anfänger-Themen 1
L Fenster auf Knopfdruck Java Basics - Anfänger-Themen 3
N Problem mit JOptionPane und Fenster-Fokus Java Basics - Anfänger-Themen 2
J ausgaben von der konsole in das fenster Java Basics - Anfänger-Themen 5
O Finally beim Fenster schliessen Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
P Eigenes Fenster erstellen Java Basics - Anfänger-Themen 5
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
T Zu viele Fenster - HILFE! Java Basics - Anfänger-Themen 5
J Extra Fenster (Frame) Java Basics - Anfänger-Themen 20
llabusch Fenster per Button verschieben Java Basics - Anfänger-Themen 5
llabusch Fenster um x Pixel verschieben Java Basics - Anfänger-Themen 4
P Window Builder Reiter im Fenster erstellen Java Basics - Anfänger-Themen 7
S Java Fenster Java Basics - Anfänger-Themen 2
D (zwei) Fenster mit unterschiedlicher Befüllung Java Basics - Anfänger-Themen 11
A JAVA Fenster in ein PDF Konvertieren Java Basics - Anfänger-Themen 1
A Erkennung eines Button im aktiven Fenster Java Basics - Anfänger-Themen 2
B Variable im Fenster anzeigen lassen? Java Basics - Anfänger-Themen 2
S Fenster ist zu groß Java Basics - Anfänger-Themen 8
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
F Erste Schritte Aktuelles Fenster durch Event schließen Java Basics - Anfänger-Themen 3
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
tuttle64 Keine Umlaute im Dos Fenster Java Basics - Anfänger-Themen 12
J Button nimmt das komplette Fenster ein?! Java Basics - Anfänger-Themen 5
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
Athena Schlichtes Fenster mit Windowskomponenten Java Basics - Anfänger-Themen 3
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5
A Login Fenster Java Basics - Anfänger-Themen 3
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
Z GUI-Fenster leeren Java Basics - Anfänger-Themen 5
M Erste Schritte Probleme mit Fenster Schließen Java Basics - Anfänger-Themen 6
J ordentliche Fenster Java Basics - Anfänger-Themen 17
J Problem beim Fenster Java Basics - Anfänger-Themen 4
Z Login Fenster Java Basics - Anfänger-Themen 7
K Aus JFrame-Fenster SuM-Fenster öffnen geht nicht! Java Basics - Anfänger-Themen 8
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
O Größeres Fenster als angegeben?! Java Basics - Anfänger-Themen 2
J Eltern-Fenster ermitteln Java Basics - Anfänger-Themen 2
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
V Fenster wird nicht mittig platziert Java Basics - Anfänger-Themen 3
P gui fenster nur einmal aufrufen Java Basics - Anfänger-Themen 5
P Im Fenster bleiben (swing) Java Basics - Anfänger-Themen 16
J Werte ins neue Fenster übertragen Java Basics - Anfänger-Themen 6
S Fenster richtig schließen Java Basics - Anfänger-Themen 8
M Einfacher Fenster-Ablauf Java Basics - Anfänger-Themen 5
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
SexyPenny90 Wie erstelle ich ein extra Fenster mit einer Meldung Java Basics - Anfänger-Themen 2
S nur neu geöffnetes Fenster schließen Java Basics - Anfänger-Themen 3
J Willkürlich geöffnetes Fenster/Dialog anspielen? Java Basics - Anfänger-Themen 3
M OOP GUI - Fenster vererben? Java Basics - Anfänger-Themen 9
T fenster schliesen und mouse events in einer nicht abstrakten klasse Java Basics - Anfänger-Themen 6
M Erste Schritte Fenster Und VB Funktionen Java Basics - Anfänger-Themen 8
G Scrollbares Fenster bei mehr als 5 Objekten Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben