Fenster A soll Fenster B schliessen

Interholic

Mitglied
hallo,

ich hätte mal eine theoretische Frage:

ich habe ein programm das fenster a generiert. von dort kann aus einer zusätzlichen klasse fenster b geöffnet werden. das 2. fenster wird üblicherweise per DISPOSE_ON_CLOSE geschlossen. da es aber nicht modal ist (der gleichzeitige zugriff auf beide fenster soll möglich sein), kann ich dieses mehrmals öffnen - aber genau das soll nicht passieren.

plan a:
ich habe das 2. fenster immer parallel zum hauptfenster und blende es nur ein und aus (HIDE_ON_CLOSE). aber mal ehrlich... sieht nach 'ner notlösung aus, oder? ;-)

diesen plan habe ich erstmal verworfen...

plan b:
bevor ich das 2. fenster öffne, wird es grundsätzlich erstmal geschlossen um es im anschluss gleich wieder zu öffnen. sollte dafür sorgen das es nur 1x existiert, statt x-mal. klingt auch nicht professionell, aber damit könnte ich leben.

dazu finde ich leider keinen hinweis, wie ich aus fenster a fenster b schliessen kann.

plan c:
ich frage vor dem öffnen des 2. fenster ab, ob es bereits geöffnet ist. wenn ja, öffne ich es nicht erneut. klingt nach der saubersten lösung.

geht das überhaupt? vermutlich schon, aber auch dazu finde ich nichts...


kann mich bitte mal jemand in die richtige richtung schubsen? ;-)

danke!


gruss,
inter
 

VirtualIndex

Aktives Mitglied
Ich habe gerade nur wenig Zeit, daher mache ich es kurz und ganz ohne Beispiel:
Plan C realisierst du, indem du eine boolesche Variable isSecWindowOpen anlegst und nach dem ersten Öffnen diese auf true setzt. Wenn die Variable auf true steht, dann führt dein Öffnen-Button in Fenster a nichts aus und wenn du Fenster b schließt, dann setzt du diese Variable per setter-Methode auf false zurück.
 

Interholic

Mitglied
klasse idee!

vielen dank...

zwar funktioniert mein setter noch nicht richtig (befindet sich in klasse a und ist von klasse b noch nicht erreichbar), aber sowas hab ich schonmal gemacht und es funktionierte (war halt "andersrum", sollte aber doch kein unterschied sein).

ich "bastel" mal noch etwas rum...

danke nochmal...


gruss,
inter
 

VirtualIndex

Aktives Mitglied
Hallo Interholic,

der Setter muss public sein und du musst eine Referenz auf das Fenster a an Fenster b übergeben. Fenster b sollte also im Konstruktor Fenster a übergeben bekommen. Dann kannst du von Fenster b aus die Methoden von Fenster a aufrufen.

Grüße
VirtualIndex
 
K

kneitzel

Gast
Evtl. macht es auch Sinn, sowas genereller zu entwickeln? Wieso Fenster A und B damit belasten? Das sind ja eigentlich keine wirklichen Aufgaben der jeweiligen Fenster. Es geht hier doch eher um eine Art FensterManager. Also kannst Du z.B. einen FensterManager als Klasse schreiben. Über Singleton Pattern oder einfach statische Funktionen / Variablen kann das dann jedes Fenster selbst nutzen.

Dann kann man sich überlegen, wie das Design sein soll. Evtl. übernimmt der Fenster Manager das Öffnen von Fenstern. Dann wird halt kein Fenster mehr direkt geöffnet sondern das geht dann alles über Aufrufe im FensterManager. Dann kann FensterManager auch prüfen, ob es schon eine Instanz gibt und was der Status des Fensters ist.
Evtl. leitest Du da auch Deine Fenster von einem ManagedWindow ab oder so. Da wäre dann evtl. noch weiterer Code drin, der sicher stellt, dass eben beim schließen des Fensters dieses auch im FensterManager vermerkt wird oder so. Hätte dann ggf. den Vorteil, dass man bestehende Programme auch leicht umstellen könnte.

Das aber nur als kleine Denkanregung, ob nicht ein objektorientierter Ansatz besser sein könnte. Da ich mich nicht im Detail mit den Anforderungen beschäftigt habe, möchte ich nicht mehr als eine Denkanregung weiter geben.
 

Interholic

Mitglied
@VirtualIndex:

nochmals vielen dank!

auch für deine ergänzenden infos. mein setter ist 'public'. aber ich kämpfe momentan mehr mit dem dazugehörigen konstruktor. durch die referenzübergabe - glaube ich - nicht mit dem einfachen hinzukommen, sondern benötige wohl den überladenen. entweder hab' ich das system noch nicht wirklich verstanden oder habe einen blöden denkfehler durch meine umgedrehte 'reihenfolge' (konstruktor in klasse b/fenster b mit referenz auf klasse a/fenster a).

ich büffel wohl nochmal die theorie... ;-)


@kneitzel:

auch dir dank für deine anregung!

ich fürchte nur, dass sie meine derzeitigen fähigkeiten noch übersteigt. ABER ich hab' verstanden was du meintest und es klingt nach einer echt guten idee, die ich im hinterkopf behalten werde.

einerseits weiss ich 'übung macht den meister'! andererseits möchte man ja vermeiden immer wieder dieselben routinen zu coden. das wäre so ein windowsmanager sicherlich ziemlich hilfreich. :)

wenn ich soweit bin, werde ich mich da ganz bestimmt mal dransetzen und ggf. auf dich zurückkommen... ;-))


gruss,
inter
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Fenster schließen soll Button kontakt auslösen. Java Basics - Anfänger-Themen 12
H Fenster größer kleiner machen(Inhalt soll mitziehen) Java Basics - Anfänger-Themen 4
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
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
L Fenster winzig klein durch GridBagLayout Java Basics - Anfänger-Themen 3
R Welcher Layout Manager-für so ein Fenster? Java Basics - Anfänger-Themen 5
H Java-Fenster ohne Inhalt Java Basics - Anfänger-Themen 2
T Windows Fenster Schließen Java Basics - Anfänger-Themen 4
E JFrame Fenster bewegen Java Basics - Anfänger-Themen 8
K Swing Fenster jede sec.neuzeichnen Java Basics - Anfänger-Themen 14
E javaw öffnet trotzdem ein DOS Fenster Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben