JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen

Paz1

Mitglied
Vorab: Bin Anfänger und es ist eig auch ne Anfänger-Frage, deshalb: Sagt bitte bescheid, falls die Frage eher in "Java Basics". Dann verschiebe ich es natürlich gleich.

Hallo zusammen,
Ich würde gerne zwischen Layout-Containern bzw. Fenstern per Knopfdruck (Button) wechseln. Dabei will ich, der Übersicht wegen, jedes Fenster/Container in eine eigene Klasse stecken (ich denke, das ist normal so).

Bei Fenstern lasse ich die Klassen von Stage erben und erzeuge eine neue Instanz der Klasse über den Konstruktor (in Button.setOnAction(...).
Das funktioniert, aber ich erzeuge ja jedes Mal das Fenster aufs neue und kann deswgen keine Infos im Fenster(in der Instanz der Klasse) speichern...

Bei Layout-Containern bin ich leider völlig überfordert. Da würde ich die Klassen von einem Pane erben lassen. Allerdings kann ich mir dieses Pane nicht anzeigen lassen, weil ich dei Pane ja meine (immer gleiche) Szene setzten will. Und diese ist ja in der Main-Klasse in der Start-Methode (worauf ich es nicht schaffe von einer anderen Klasse aus zuzugreifen).

Ich hoffe, mein Anliegen ist halbgwegs verständlich. Habe auch wirklich schon viel im Internet und Forum gestöbert, aber bin bisher auf keine Lösung gestoßen...

Viele Grüße und Danke schonmal! :)
 

lam_tr

Top Contributor
Vorab: Bin Anfänger und es ist eig auch ne Anfänger-Frage, deshalb: Sagt bitte bescheid, falls die Frage eher in "Java Basics". Dann verschiebe ich es natürlich gleich.

Hallo zusammen,
Ich würde gerne zwischen Layout-Containern bzw. Fenstern per Knopfdruck (Button) wechseln. Dabei will ich, der Übersicht wegen, jedes Fenster/Container in eine eigene Klasse stecken (ich denke, das ist normal so).

Bei Fenstern lasse ich die Klassen von Stage erben und erzeuge eine neue Instanz der Klasse über den Konstruktor (in Button.setOnAction(...).
Das funktioniert, aber ich erzeuge ja jedes Mal das Fenster aufs neue und kann deswgen keine Infos im Fenster(in der Instanz der Klasse) speichern...

Bei Layout-Containern bin ich leider völlig überfordert. Da würde ich die Klassen von einem Pane erben lassen. Allerdings kann ich mir dieses Pane nicht anzeigen lassen, weil ich dei Pane ja meine (immer gleiche) Szene setzten will. Und diese ist ja in der Main-Klasse in der Start-Methode (worauf ich es nicht schaffe von einer anderen Klasse aus zuzugreifen).

Ich hoffe, mein Anliegen ist halbgwegs verständlich. Habe auch wirklich schon viel im Internet und Forum gestöbert, aber bin bisher auf keine Lösung gestoßen...

Viele Grüße und Danke schonmal! :)
Wieso packst du die zwei Layout Container nicht in ein StackPane (arbeitet an sich wie ein Stapel). Die StackPane steckst du dann in die Scene.

Code:
Button b1 = new Button(""Switch To P2");
Button b2 = new Button(""Switch To P1");

BorderPane p1 = new BorderPane (b1);
BorderPane p2 = new BorderPane (b2);

b1.setOnMouseClicked(e->p2.toFront());
b2.setOnMouseClicked(e->p1.toFront());

StackPane parent = new StackPane( );
parent.getChildren().addAll(p1,p2);
Ich habe das jetzt ohne IDE runtergeschrieben um dir zu verdeutlichen wie man es eventuell machen kann.
 

Paz1

Mitglied
Button b1 = new Button(""Switch To P2");
Button b2 = new Button(""Switch To P1");

BorderPane p1 = new BorderPane (b1);
BorderPane p2 = new BorderPane (b2);

b1.setOnMouseClicked(e->p2.toFront());
b2.setOnMouseClicked(e->p1.toFront());

StackPane parent = new StackPane( );
parent.getChildren().addAll(p1,p2);
Wenn ich aber hier den Inhalt von p1 und p2 in eine separate Klasse schreiben möchte (also inkl. Buttons) funktioniert das doch nicht mehr, oder?
Ich suche momentan auch (noch) nicht nach einer speziellen Lösung sondern eher nach der Herangehensweise. Also, wie ma Programme mit vielen Fenster, Menüs etc. aufbaut. Also Dinge wie z. B. ein InstallWizard
 

lam_tr

Top Contributor
Ich benutze an der Stelle sehr gerne den Publish/Subscribe Verfahren über den EventBus.

Zum Beispiel bei InstallWizard, wenn ich auf "Abschließen" klicke, soll dann im MainPanel über den EventBus zum Beispiel einen Editor öffnen oder andere Ansichten updaten.

Das sollte auch güt über Dependency Injection gehen.
 

Paz1

Mitglied
OK, ich glaube, mir fehlen hierfür noch einige Grundlagen... Trotzden vielen Dank!
Ich mach dann mal weiter in der Theorie/Übung und versuche mich dann wieder hier für Feedback zu melden.
 

lam_tr

Top Contributor
OK, ich glaube, mir fehlen hierfür noch einige Grundlagen... Trotzden vielen Dank!
Ich mach dann mal weiter in der Theorie/Übung und versuche mich dann wieder hier für Feedback zu melden.

Show mal hier ein schönes Bild von Google Bild Link.

An sich ist das ein super einfaches Prinzip womit ich mich sehr schnell eingearbeitet habe.

Link zum EventBus: Link

Überall wo do auf dem Event horchen willst machst du einfach nur folgenden Code, hier wird MessageEvent mitgegeben aber prinzipiell kannst du ein beliebiges Object mitgeben.
Code:
@Subscribe(threadMode = ThreadMode.MAIN) 
public void onMessageEvent(MessageEvent event) {/* Do something */};

Einzige Bedingung bei der Sache ist, die Klasse muss beim EventBus registriert werden

Code:
EventBus.getDefault().register(this);

Und dort wo es abgefeuert wird
Code:
EventBus.getDefault().post(new MessageEvent());
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J JavaFX JavaFX Splitpane - Zugriff auf die Controller der Elemente AWT, Swing, JavaFX & SWT 8
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
L JavaFX Zugriff auf HostServices im FXML Controller AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
J JavaFX Zugriff auf Child AWT, Swing, JavaFX & SWT 4
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
C JavaFX Zugriff auf TextField aus einer anderen Klasse AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Zugriff auf Guiobjekte die über FXML erstellt wurden AWT, Swing, JavaFX & SWT 2
F JavaFX Zugriff auf Controller Methode von einer normalen Klasse aus AWT, Swing, JavaFX & SWT 4
C JavaFX Zugriff auf TableView AWT, Swing, JavaFX & SWT 2
D JavaFX Zugriff auf Controller erlangen AWT, Swing, JavaFX & SWT 4
L Zugriff auf JavaFX Controls AWT, Swing, JavaFX & SWT 3
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
P Event Handling Anfängerfrage: ActionEvent bekommt kein Zugriff auf Objekt AWT, Swing, JavaFX & SWT 3
H SWT NullPointerException bei Zugriff auf Variablen des Hauptfensters AWT, Swing, JavaFX & SWT 6
K Zugriff auf Label und Ereignisbehandlung durch zwei Handlerklassen AWT, Swing, JavaFX & SWT 3
B Zugriff auf JFrame obwohl die Klasse abgeleitet ist AWT, Swing, JavaFX & SWT 3
V JTable: Zugriff auf einzelne Zellen AWT, Swing, JavaFX & SWT 4
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
A Swing Zugriff auf JButton AWT, Swing, JavaFX & SWT 2
M Zugriff auf Variablen eines Objektes ohne sie auf static zu setzen AWT, Swing, JavaFX & SWT 9
I Swing Zugriff auf ein Objekt AWT, Swing, JavaFX & SWT 2
M Zugriff paralleler Threads auf selbes JTextPane AWT, Swing, JavaFX & SWT 6
M JTree mit eigenen Knoten - Zugriff auf Daten AWT, Swing, JavaFX & SWT 6
N zugriff auf frame AWT, Swing, JavaFX & SWT 5
N Swing Zugriff JButton auf JTree AWT, Swing, JavaFX & SWT 4
D Zugriff auf Instanz der GUI AWT, Swing, JavaFX & SWT 3
E Swing DB Zugriff mit JProgressBar?! AWT, Swing, JavaFX & SWT 8
R Zugriff auf Model im MVC-Design aus SwingWorker heraus AWT, Swing, JavaFX & SWT 3
H Zugriff JPanel AWT, Swing, JavaFX & SWT 3
D Swing Storage von / Zugriff auf und durch Actions AWT, Swing, JavaFX & SWT 5
S this-Zugriff auf Container höherer Ebene AWT, Swing, JavaFX & SWT 2
S Swing Zugriff auf Polyline in Grafik AWT, Swing, JavaFX & SWT 4
E Swing Zugriff auf Attribute eines JFrames über einen JDialog AWT, Swing, JavaFX & SWT 2
J Zugriff auf HtmlPanel sperren AWT, Swing, JavaFX & SWT 3
D JTree - Zugriff auf Nodes mit Object AWT, Swing, JavaFX & SWT 6
R Zugriff auf Component um addComponentListener() aufzurufen AWT, Swing, JavaFX & SWT 4
O Zugriff auf PreferenceStore aus der Business-Logik-Schicht? AWT, Swing, JavaFX & SWT 11
S NumberFormatException beim Zugriff auf Leeres JTextField AWT, Swing, JavaFX & SWT 8
S Zugriff auf statische Var in MouseEvent -> Warnung AWT, Swing, JavaFX & SWT 6
M Fehler beim Zugriff von awt-KeyListener auf swt-Shell AWT, Swing, JavaFX & SWT 2
S Zugriff auf Elemente funktioniert mit SWING nicht mehr AWT, Swing, JavaFX & SWT 5
X Zugriff auf "Oberparents" ? AWT, Swing, JavaFX & SWT 4
J JTextArea wird nicht aktualisiert bei Zugriff von außerhalb AWT, Swing, JavaFX & SWT 2
O DB-Zugriff + wie darstellen? AWT, Swing, JavaFX & SWT 6
F Problem bei Zugriff auf ComboBox Item AWT, Swing, JavaFX & SWT 4
G Zugriff auf JTextField AWT, Swing, JavaFX & SWT 2
J Zugriff auf "dynamisch erzeugte" JTextFields AWT, Swing, JavaFX & SWT 2
J Zugriff auf letzte Klasse AWT, Swing, JavaFX & SWT 4
M Zugriff auf Methoden aus einem ActionListener AWT, Swing, JavaFX & SWT 2
F Zugriff auf Oberfläche bzw Trennung GUI / Logik AWT, Swing, JavaFX & SWT 3
I selectedText: Wie bekomme ich Zugriff auf den Text? AWT, Swing, JavaFX & SWT 4
G Zugriff auf Bilder verweigern AWT, Swing, JavaFX & SWT 7
H Zugriff auf die Farbwerte eines Bildes AWT, Swing, JavaFX & SWT 6
G Zugriff auf TextField geht nicht AWT, Swing, JavaFX & SWT 5
G zugriff auf benutzeroberflächenelemente AWT, Swing, JavaFX & SWT 4
V Zugriff auf Components aus einem ActionListener AWT, Swing, JavaFX & SWT 3
M ActionListener-Zugriff durch mehrere Frames AWT, Swing, JavaFX & SWT 5
M Zugriff auf ComboBox! AWT, Swing, JavaFX & SWT 17
G Excel-Zugriff über POI: wohin mit dem Package? AWT, Swing, JavaFX & SWT 4
B Zugriff von Toolbar auf zugehörigen Frame AWT, Swing, JavaFX & SWT 6
O JTabbedPane - Zugriff auf die Elemente eines Tabs AWT, Swing, JavaFX & SWT 4
O JFileChooser - Zugriff auf Dateiname-Feld und Save-Button? AWT, Swing, JavaFX & SWT 6
E Zugriff auf JTextField nach Buttonklick AWT, Swing, JavaFX & SWT 6
M suche geeignetes Fenster zur Anzeige AWT, Swing, JavaFX & SWT 49
berserkerdq2 Kann ich ein Rechteck mittig im Fenster halten, egal wie ich die Bildschirmgröße verändere? AWT, Swing, JavaFX & SWT 3
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
TheSepp Fenster um x Pixel bewegen, wenn man auf dem Knopf drückt AWT, Swing, JavaFX & SWT 10
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
K JavaFX unterschiedliche (mehrere Fenster) in seperater Main Methode AWT, Swing, JavaFX & SWT 26
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
L Swing Files abspeichern mit Save as Dialog Fenster AWT, Swing, JavaFX & SWT 5
OZAN86 einfaches Fenster öffnen scheitert AWT, Swing, JavaFX & SWT 18
G Zuletzt aktives Fenster, vor dem aktuell aktiven AWT, Swing, JavaFX & SWT 2
sserio Kann man bei JavaFx ein Fenster aufkommen lassen? AWT, Swing, JavaFX & SWT 1
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
S Swing Alles beenden bei Fenster mit Scroll-Balken AWT, Swing, JavaFX & SWT 6
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
W Zweites/neues Fenster durch Button öffnen AWT, Swing, JavaFX & SWT 6
CptK Fokus auf geöffnetes Zweit-Fenster setzen und Eingaben außerhalb blocken AWT, Swing, JavaFX & SWT 2
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
MiMa JavaFX Fenster in JavaFX öffnen Schliessen (Initialisierung) AWT, Swing, JavaFX & SWT 20
N Kontextmenü (Popup-Fenster) erstellen AWT, Swing, JavaFX & SWT 3
L Hintergrundbild im Fenster darstellen AWT, Swing, JavaFX & SWT 9
P JavaFX Fenster wird nicht angezeigt (Mac) AWT, Swing, JavaFX & SWT 13
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
B JavaFX TextField Eingabe in neues Fenster übernehmen AWT, Swing, JavaFX & SWT 4
N Drag and Drop Fenster AWT, Swing, JavaFX & SWT 11
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
A Fenster genau unterhalb von JTextField anzeigen AWT, Swing, JavaFX & SWT 1
J Overlay Panel statt neues Fenster AWT, Swing, JavaFX & SWT 6
S Swing Bei start des Programmes kein Fenster zu sehen AWT, Swing, JavaFX & SWT 1
X Neues Fenster mit Button öffnen und bearbeiten AWT, Swing, JavaFX & SWT 4
platofan23 JAVAFX zweites Fenster öffnen AWT, Swing, JavaFX & SWT 2
M JavaFX Altes Fenster (FXML Datei) löschen AWT, Swing, JavaFX & SWT 16
P JavaFX Fenster lädt nicht mehr AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben