2017-09-07 2 views
0

Mein JavaFX Projekt folgt vor: optimale Compute Werte in Model Klasse initialisieren Controller eine neue Instanz von FXMLLoader Controller gesetzt erstellen und view.fxml AnsichtWie IntelliJ get FXML Controller von FXMLLoader für Syntax hilighting erzählen?

Meine fxml Datei nicht eine Zeile wie fx:controller="com.example.Controller" hat machen. IntelliJ versagt Methoden wie onMouseClicked="#processMyButtonClick" zu lösen, weil sie nicht weiß, was Controller zu verwenden. No Controller specified for top level element. Gibt es eine Möglichkeit, IntelliJ zu erzählen? Wenn der Controller in FXML angegeben ist, wird die Ausnahme Controller value already specified ausgelöst.

Als Ergebnis sind Quellcodeverwaltungsprotokolle mit Fehlalarmen "100 Fehler wurden gefunden" und eine Verbindung zwischen #methodName in fxml und public void methodName(){/*..*/} funktioniert nicht mehr.

Gibt es eine Möglichkeit IntelliJ zu sagen fxml Controller von POJO Klasse abzuleiten?


Basierend auf "No Controller specified for top level element" when programatically setting a Controller einen Controller in fxml Datei angeben können, aber dies ist nicht wünschenswert, weil ich Controller initialisieren möchte, bevor fxml geladen wird.

+1

Wahrscheinlich nicht, was Sie wollen, aber es ist möglich, sowohl angeben 'fx: controller' und initialisieren die Steuerung vor dem Controller initialisieren, bevor irgendetwas injiziert wird dazu mit einer 'controllerFactory'. – fabian

+0

Warum nicht Sie Controller innerhalb der FXML Datei enthalten sein sollen? – notmyf4ulty

Antwort

1

ich dies auch für eine lange Zeit gehasst, aber ich habe eine Arbeit um gefunden. Sie geben den Controller in der FXML Datei und dann wie folgt laden:

public static Node loadScene(Controller c) { 
    URL resource = Controller.class.getResource("/scene.fxml"); 
    FXMLLoader loader = new FXMLLoader(resource); 
    loader.setControllerFactory(param -> c); 
    loader.load(); 
    return loader.getRoot(); 
} 
+0

Minimal-invasive Verfahren. Vielen Dank. – Stepan

Verwandte Themen