JavaFX Pattern (Aufteilung Zuständigkeiten

Bela B.

Aktives Mitglied
Hallo zusammen,

mein Programm macht jetzt alles soweit direkt in der Main ohne grafische Oberfläche.
Jetzt wollte ich mich der grafischen Oberfläche mittels JavaFX mittels FXML widmen.

Da ich was GUIs angeht noch nahezu nichts weiß und in meinem Buch "Der Weg zum Java-Profi" das Thema relativ kurz kommt, brauche ich mal ein paar Tipps.

Ich habe mir per Scene-Builder schon ein paar FXMLs gebastelt (für jedes Fenster halt ein eigenes) und denke, dass es Sinn macht, auch für jedes einen eigenen Controller zu haben.

Mein aktuelles Programm nutzt eine Reihe von Klassen z.B. Config.class, die in einer JSON gespeichert wird. Dann gibt es da aber auch noch eine Klasse, die ich in eine Collection packe und anschließend mit einer anderen JSON-Datei vergleiche und mir die fehlenden Inhalte ausgeben lasse (habe dafür die equals und hash-Methode überschrieben).

Ziel soll es sein, dass ich in einem Dialog meine Config parametrieren kann und im Hauptprogramm dann eben die JSON zum Vergleich auswählen kann.

Doch wie bringe ich jetzt am besten alles zusammen? Kenne MVC, aber tue mich schwer mit der Aufteilung zwischen Model (=meine Klassen?), View (=fxml?) und Controller (=Verbindung zwischen Model und View).

Wo muss ich z.B. meine Klassen instantiieren? Im Controller?
Danke schon mal!
 

MoxxiManagarm

Top Contributor
Vermutlich ist (fast) alles, was du aktuell in der Main hast, Model.
Der Controller besitzt z.B. Eventlogik --> Button Actions
Die View zeigt nur an, sollte keine Logik besitzen.
 

Bela B.

Aktives Mitglied
Ja, alles in der Main ist Model, aber soll das dann auch in der Main bleiben? Und falls ja, wie mache ich dann dem Controller das Model bekannt?
 

mrBrown

Super-Moderator
Mitarbeiter
Ist Main eine Klasse von dir?
Wenn ja -> gib ihr einen sprechenderen Namen und nimm die main-Methode daraus in eine extra Klasse
Wenn nein -> Lager es in enrsprechende Klassen aus

In der main-methode initialisierst du dein Model und dein jeweiliges View-Controller-Paar und übergibst denen das Model.
 

Bela B.

Aktives Mitglied
Ok, also wenn ich das jetzt richtig verstanden habe, packe ich meinen bisherigen Ablauf, den ich direkt in der main()-Methode gemacht habe, in eine eigene Model.class.

Die Model.class hat dann einige Methoden, damit der Controller bei einer bestimmten GUI-Aktion dann über die Model.class auf die entsprechende Methode der anderen Klassen zugreifen kann.
Diese Model.class instantiiere ich dann im Controller.

Stimmt das so ungefähr?
Ist dann sowas wie ein File-Check bereits zu viel im Controller? Ich habe wie oben schon geschrieben eine Config-Datei, die ich an mehreren Stellen im Programm dann brauche. Wenn diese Datei nicht präsent ist, dann soll der User zuerst über einen Dialog die Einstellungen vornehmen. Mache ich diesen Check dann in der Model.class oder im Controller?
 

mrBrown

Super-Moderator
Mitarbeiter
Gehört alles ins Model, Controller+View ist wirklich nur für das UI zuständig, deshalb sollte die gesamte Logik davon unabhängig sein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Observer Pattern JLabel ändern AWT, Swing, JavaFX & SWT 7
M Swing MVC-Pattern - View mit mehreren Models AWT, Swing, JavaFX & SWT 5
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Cromewell JavaFX MVC-Pattern AWT, Swing, JavaFX & SWT 7
L JavaFX Java FX Anwendung nach MVC mit Observer Pattern AWT, Swing, JavaFX & SWT 15
3 2D-Grafik BasicStroke dash pattern - Linie zu lang!? AWT, Swing, JavaFX & SWT 1
M Welches Pattern bei GUI Anwendungen? AWT, Swing, JavaFX & SWT 2
lumo SWT Image Pattern AWT, Swing, JavaFX & SWT 5
M Swing MVC Pattern verstanden, aber Probleme bei der Umsetzung AWT, Swing, JavaFX & SWT 5
C GUI Entwicklung - welches Pattern? AWT, Swing, JavaFX & SWT 16
J Swing Controller im MVC-Pattern AWT, Swing, JavaFX & SWT 9
G Hilfe! Command Pattern an easy ImageViewer? AWT, Swing, JavaFX & SWT 13
D Wie mehrere Grafiken auf JPanel anzeigen lassen? (Observer pattern?) AWT, Swing, JavaFX & SWT 24
D MVC Pattern in Swing-Applikationen AWT, Swing, JavaFX & SWT 4
hdi Observer-Pattern bei JPanel nicht möglich? AWT, Swing, JavaFX & SWT 7
A MVC-Pattern - Kreuzweise Anwendung? AWT, Swing, JavaFX & SWT 4
S Aufteilung von JPanels in einem Frame AWT, Swing, JavaFX & SWT 13
P Aufteilung eines Bildes in JLabel AWT, Swing, JavaFX & SWT 15
P GUI-aufteilung AWT, Swing, JavaFX & SWT 3
R AWT: Aufteilung mit Panels? AWT, Swing, JavaFX & SWT 2
M GridBagLayout Probleme bei JPanel Aufteilung AWT, Swing, JavaFX & SWT 3
D Welches Layout für prozentuale Aufteilung: 20% - 60 % - 20% AWT, Swing, JavaFX & SWT 3
G kann man die aufteilung von GridLayout beeinflussen ? AWT, Swing, JavaFX & SWT 10

Ähnliche Java Themen

Neue Themen


Oben