JavaFX Dependencies in fxml

TheWhiteShadow

Bekanntes Mitglied
Hallo,
ich arbeite mich gerade in JavaFX ein und hab eine kleine Gui geschrieben und erst im Nachhinein bemerkt, dass man diese auch über xml beschreiben kann.
Jetzt möchte ich meine Beschreibung vom Code in eine fxml-datei umbauen.

Viele meiner Klassen benötigen ein Zentrales Objekt. Wie bekomme ich das in meine GUI-Klassen rein?
Java:
public class MyView extends FlowPane{
  public MyView(Manager myManager){
Falls nicht möglich könnte ich notfalls noch einen statischen Zugriff realisieren.
 

knilch

Bekanntes Mitglied
Hi
für dein fxml brauchst du sicher noch eine Controller-Klasse, in der du das Verhalten von der View implementierst.
das müsstest du dann so machen:
Code:
<FlowPane xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="PACKAGE.ViewController" style="-fx-background-color: gray" >
   <!-- controll-items -->
</FlowPane>

In der Klasse: ViewController.java wird dann das Verhalten umgesetzt. z.B. Action-event für Buttons etc.
In dieser Klasse kannst du die Instanz von Manager verwalten. Du kannst mit der Methode: initialize() die Instanz erzeugen oder diese von einer anderen Klasse holen. Die Methode initialize wird beim Start der View geladen (nach dem Aufruf vom Constructor). Unbedingt: wenn du die Methode initialize() verwendest, musst du die Annotation @FXML dazufügen. Sonst wird diese nicht ausgeführt.
Oder du machst es via Constructor von ViewController.

Java:
public class ViewController{
   @FXML
   public void initialize() {
       System.out.println("initialize...");
   
   }
   ...
}

Grüsse
knilch
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Du kannst mit der Methode: initialize() die Instanz erzeugen oder diese von einer anderen Klasse holen.
Das ist zwar möglich, aber keine gute Idee. Damit entfernst Du die bisher vorhandene Dependency Injection. Mit dem Erzeugen der Instanz legst Du die verwendete Implementierung im Controller fest, beim "von einer anderen Klasse holen" führst Du weitere Abhängigkeiten im Controller ein.

Für DI sehe ich drei Möglichkeiten:
  1. den Controller vom FXMLLoader holen -> Setter injection
  2. dem FXMLLoader eine ControllerFactory mitgeben -> Constructor injection
  3. ein DI-Framework verwenden (z. B. afterburnerfx)
 

TheWhiteShadow

Bekanntes Mitglied
gerade bei Injection über reflektion hab ich lieber mehr annotationen als nötig. Damit ich später noch nachvollziehen kann was da abgeht. Das wie von Geisterhand plötzlich ne private Variable einen Inhalt hat ist schon irgendwie pervers :confused:. Wenn das mit meiner Geldbörse so wäre... ;)
 

mrBrown

Super-Moderator
Mitarbeiter

lusitano

Aktives Mitglied
Für DI sehe ich drei Möglichkeiten:
  1. den Controller vom FXMLLoader holen -> Setter injection
  2. dem FXMLLoader eine ControllerFactory mitgeben -> Constructor injection
  3. ein DI-Framework verwenden (z. B. afterburnerfx)

hat jemand dazu vielleicht ein paar guides oder tutorial ?
Grade speziell das Thema mit GUI Button klick und nächster inhalt anzeigen würde mich da interessieren .

Grüss und schon mal Danke .
 

TheWhiteShadow

Bekanntes Mitglied
Ich habe letztendlich doch alles statisch gelöst. Es sind bereits diverse Klassen und ohne Zentrale GUI-Aufbau-Klasse fehlt mir einfach die Möglichkeit Abhängige Objekte zu verteilen. Der FXML-Loader injiziert beispielsweise nur in Controller. Und wenn ich der Übersichtlichkeit meine XML splitte, brauch ich wieder einen Controller. Controller selbst, lassen sich aber ebenfalls nicht injiziern. Warum schreibt man überhaupt so ein Mist-Framework? ICh meine nicht JAVA-FX allgemein, sondern nur der xml-Teil. Gut gemeint ja, aber dann gehörig verhunst. :(
 

Robat

Top Contributor
Könntest du eventuell mal aufzeigen, wie die einzelnen Komponenten zusammenhängen? Also was gibt es für FXML-Dateien + Controller und wo brauchst du welche Abhängigkeiten. Ich glaube nicht, dass es sich mit JavaFX nicht umsetzen lässt.
 

mihe7

Top Contributor
hat jemand dazu vielleicht ein paar guides oder tutorial ?
Damit Du nicht meinst, dass man Dich hier ignorieren würde: ich habe nicht geantwortet, weil ich keines kenne. Hier im Thread werden Deine Frage auch nicht viele mitbekommen.

Erstell einfach ein neues Thema bzgl. Deiner Fragen. Gut wäre es, wenn Du eine konkrete Frage, am besten sogar mit Code, hast. Dann findet sich mit Sicherheit jemand.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa Darstellung von FXML ateien nicht korrekt (SceneBuilder) AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Georges456 NetBeans am Mac leider ohne FXML AWT, Swing, JavaFX & SWT 17
R Fxml findet controller nicht AWT, Swing, JavaFX & SWT 2
thor_norsk JavaFX, FXML und SceneBuilder AWT, Swing, JavaFX & SWT 6
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
K Bekomme (u.a) javafx.fxml.LoadException trotz "korrektem" Code AWT, Swing, JavaFX & SWT 8
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
N Braucht man fxml AWT, Swing, JavaFX & SWT 3
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
M mvvm umsetzen ohne fxml AWT, Swing, JavaFX & SWT 0
L JavaFX .fxml laden klappt nicht AWT, Swing, JavaFX & SWT 16
T FXML Datei in Java Code einbinden: javafx.fxml.LoadException AWT, Swing, JavaFX & SWT 2
J JavaFX - Included FXML - Entfernen feststellen AWT, Swing, JavaFX & SWT 2
L JavaFX javafx.fxml.LoadException bei einem Taschenrechner AWT, Swing, JavaFX & SWT 5
G JavaFX Verständnisfrage mit parametrisierten Methoden und FXML AWT, Swing, JavaFX & SWT 21
Ø Ein FXML-File mehrfach einfügen AWT, Swing, JavaFX & SWT 6
MiMa Schliessen eines FXML Fensters? AWT, Swing, JavaFX & SWT 10
OSchriever Auf Stage von FXML-Controller zugreifen AWT, Swing, JavaFX & SWT 12
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
R FXML File kann nicht hinzugefügt werden! AWT, Swing, JavaFX & SWT 2
J FXML - Internationalisierung - Behandung key not found AWT, Swing, JavaFX & SWT 39
J import javafx.fxml* bei JavaFX 13 geht nicht mehr AWT, Swing, JavaFX & SWT 7
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
T Fxbefehle aus Main umwandeln in @FXML AWT, Swing, JavaFX & SWT 21
L JavaFX JavaFX, FXML und Guice? AWT, Swing, JavaFX & SWT 0
H 3 verschiedene Nachrichten in einer FXML View die Infos kommen aus DB AWT, Swing, JavaFX & SWT 4
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
M JavaFX Altes Fenster (FXML Datei) löschen AWT, Swing, JavaFX & SWT 16
R JavaFX Java FXML Vererbung in Klassen AWT, Swing, JavaFX & SWT 9
F Java FX Von der Fxml Datei zum Objekt AWT, Swing, JavaFX & SWT 8
F FXML Datei aus dem SceneBuilder in Eclipse aufrufen AWT, Swing, JavaFX & SWT 1
I MediaPlayer (MediaView) in FXML (source) AWT, Swing, JavaFX & SWT 0
I FXML: StackPane als Root-Element AWT, Swing, JavaFX & SWT 5
I Bild über FXML (ImageView, Image) anzeigen AWT, Swing, JavaFX & SWT 1
MiMa Übergeben von Paramter bei FXML Aufruf? AWT, Swing, JavaFX & SWT 8
MiMa Wie bettet man Programmcode in JavaFX FXML ein? AWT, Swing, JavaFX & SWT 34
H Java FX List<AlbumsBean> in FXML TableView AWT, Swing, JavaFX & SWT 37
B FXML GUI - Button ausblenden AWT, Swing, JavaFX & SWT 1
D JavaFX Einbinden einer .fxml AWT, Swing, JavaFX & SWT 1
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
L JavaFX Zugriff auf HostServices im FXML Controller AWT, Swing, JavaFX & SWT 1
T Pfad zur *.fxml AWT, Swing, JavaFX & SWT 8
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX FXML vs. Java Code AWT, Swing, JavaFX & SWT 3
L Liniendiagramme mit FXML: Quellen mit konkreten Beispielen AWT, Swing, JavaFX & SWT 0
S JavaFX fxml datein mit menübar ändern AWT, Swing, JavaFX & SWT 20
K JavaFX JavaFX und FXML AWT, Swing, JavaFX & SWT 6
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
H JavaFX aus der .fxml Datei einen Konstruktor bedienen AWT, Swing, JavaFX & SWT 3
H JavaFX via .fxml einen abgeleiteten Button erstellen... AWT, Swing, JavaFX & SWT 4
E Java FX FXML Problem mit html Scriptausführung AWT, Swing, JavaFX & SWT 2
R Java FX - Fxml - relative Größenangaben für Breite und Höhe einer TextArea AWT, Swing, JavaFX & SWT 8
U JavaFX Zeichenprogramm mit JavaFX FXML AWT, Swing, JavaFX & SWT 7
B Java FX FXML Textarea SceneBuilder als XML Editor AWT, Swing, JavaFX & SWT 1
C JavaFX Tiefgestellte Zeichen in fxml AWT, Swing, JavaFX & SWT 2
M Java FX SceneBuilder 2.0, FXML, Controller AWT, Swing, JavaFX & SWT 1
B FXML-Layoutdateien schützen AWT, Swing, JavaFX & SWT 4
7 JavaFX Verwendung einer ResizableCanvas-Klasse in fxml-Datei AWT, Swing, JavaFX & SWT 3
C JavaFX Auf Nodes einer FXML-Datei in start Methode zugreifen AWT, Swing, JavaFX & SWT 5
KrokoDiehl JavaFX Gleiche Controller-Instanz für inludiertes FXML AWT, Swing, JavaFX & SWT 1
I Scene Builder kann .fxml nicht mehr laden AWT, Swing, JavaFX & SWT 3
S JavaFX FXML-Editor mit Java 7? AWT, Swing, JavaFX & SWT 2
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
X Java Fxml laden AWT, Swing, JavaFX & SWT 4
N JavaFX GUI Elemente einer anderen (FXML)Klasse ansprechen AWT, Swing, JavaFX & SWT 16
M JavaFX FXML Standartgröße festlegen AWT, Swing, JavaFX & SWT 5
L JavaFX Verständnisfrage zu JavaFX FXML und Controller-Klasse AWT, Swing, JavaFX & SWT 1
Z JavaFX Inhalt einer ViewTable durch Aktion einer Menubar ändern welche in einer anderen fxml ist AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Zugriff auf Guiobjekte die über FXML erstellt wurden AWT, Swing, JavaFX & SWT 2
D JavaFX @FXML Annotation mit Klassen und Instanzen verbinden? AWT, Swing, JavaFX & SWT 5
A Databinding in FXML-Datei AWT, Swing, JavaFX & SWT 1
K JavaFX Erzeugen dynamischer Layouts in fxml AWT, Swing, JavaFX & SWT 3
M JavaFX Stage in einer FXML-Controllerklasse ermitteln? AWT, Swing, JavaFX & SWT 5
G Swing, JavaFx - Felder aus FXML sind null AWT, Swing, JavaFX & SWT 6
M JavaFX Von FXML-Controllerdatei Daten zurückgeben AWT, Swing, JavaFX & SWT 6
M Komplexe Eingabenmasken in FXML definieren? AWT, Swing, JavaFX & SWT 17
M Java FX Innerhalb einem FXML-Dialog weiteren FXML-Dialog einblenden AWT, Swing, JavaFX & SWT 3
E JavaFX fxml files wechseln AWT, Swing, JavaFX & SWT 4
H Taschenrechnerprojekt in Javafx - Frage zu den Buttons in FXML AWT, Swing, JavaFX & SWT 1
T JavaFX FXMLController für mehrere FXML? AWT, Swing, JavaFX & SWT 7
M JavaFX Parameter für Custom Control in FXML übergeben? AWT, Swing, JavaFX & SWT 4
C JavaFX Fxml and stylecheets AWT, Swing, JavaFX & SWT 5
N FXML Dokument laden AWT, Swing, JavaFX & SWT 1
Tort-E JavaFX FXML Grundsatzfrage AWT, Swing, JavaFX & SWT 2
K Controls in Controls / Nested fxml AWT, Swing, JavaFX & SWT 1
D JavaFX Mysteriöser Dropshadow hinter Tablabelschrift - Schatten kann nicht entfernt werden (FXML + CSS) AWT, Swing, JavaFX & SWT 6
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
S JavaFX FXML AWT, Swing, JavaFX & SWT 3
G JavaFX Fxml AWT, Swing, JavaFX & SWT 2
K JavaFX Tableview mit fxml ohne Aktualiserung trotz Thread AWT, Swing, JavaFX & SWT 13
F JavaFX Auf FXML ImageView zugreifen AWT, Swing, JavaFX & SWT 6
S Aus XML Datei FXML generieren AWT, Swing, JavaFX & SWT 4
B JavaFX FXML - Eclipse einrichten AWT, Swing, JavaFX & SWT 2
V JavaFX - fxml-Datei laden (neben CSS) AWT, Swing, JavaFX & SWT 2
dzim UI aus FXML und Java gemischt - NPE? AWT, Swing, JavaFX & SWT 4
V Guis erstellen mit FXML und javaFX gemischt AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben