Auf Thema antworten

Keine Sorge: Das ist eine bei Neueinsteigern immer wieder gestellte Frage. Durch die Struktur (Main-Klasse, Controller+FXML) ensteht eine Trennung zwischen den Komponenten.

Deine Wire-Klasse wird so nicht funktionieren, weil ein statisches setzen nicht klappt (so wie du es andeutest), sondern du müsstest der Wire-Klasse die Instanz deines Controllers geben.

Deine Struktur ist noch etwas wild im Kreis und mir erschliesst sich nicht, warum du das so regeln möchtest, aber damit es klappt, musst du aus dem FXMLLoader (nach dem #load) den Controller holen.

Also: Statt statisch #load aufzurufen (unvollständiger Code):

[code=Java]


// MAIN-KLASSE

FXMLLoader loader = new FXMLLoader(...);

Pane root = loader.load();

FXMLDocumentController controller = loader.getController();

WireClass wire = new WireClass();

wire.setController(controller);


// Wire-Klasse

private FXMLDocumentController controller = null;

public void setController(FXMLDocumentController controller) {

    this.controller = controller;

}


public void doSthOnController() {

    if (controller == null)

        return null;

    controller.triggerMethod();

}

// ...

[/code]


In etwa klar, wohin die Reise geht?



Oben