JavaFX Variable an neue Scene übergeben

Jesterhead

Mitglied
Hallo Leute,

in meinem Programm öffne ich eine Verbindung zu einem FTP Server. Per Buttonklick wird nun einen neue Scene erstellt und ich möchte die FTP Verbindung an die neue Scene übergeben.

Hat mir jemand einen Tipp, wie ich das realisieren kann?
 
Hallo Leute,

folgende Zeile läuft bei mir auf eine NullpointerException. Weiß jemand, warum ich hier für clc NULL zurück bekomme?

Java:
FXMLLoader fxmlLoader = new FXMLLoader();
root = fxmlLoader.load(getClass().getResource("../application/CargoList.fxml"));
Scene scene = new Scene(root, screenBounds.getWidth(), SreenBounds.getHeight());
stage.setScene(scene);
CargoListController clc = (CargoListController) fxmlLoader.getController();
//clc ist hier NULL
clc.setConnection(connection);
stage.show();
 
Hi,
Du hast nicht gerade viel vom Code gepostet...
Kann sein, dass der controller null ist, den du mit fxmlLoader.getController() holst...
Wenn du hier einen Breakpoint setzt und das ganze im debuging mode startest, siehst du ob hier clc NULL ist, oder nicht.
Java:
CargoListController clc = (CargoListController) fxmlLoader.getController();
Ansonsten poste doch mal den ganzen Code (FXML controller- Klasse, FXML und die Klasse, wo der bereits gepostete Code vorhanden ist).
gruss knilch
 
Zuletzt bearbeitet:
Hast du auch deinen Controller in deiner FXML gesetzt?:
Code:
<VBox fx:id="root" xmlns:fx="http://javafx.com/fxml" [B][COLOR="Red"]fx:controller="de.ruzman.app.Controller"[/COLOR][/B]>
 
Hier ist der Controller:

Java:
<VBox id="" prefHeight="768.0" prefWidth="1024.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="controller.CargoListController">
 
Hi,
Du hast nicht gerade viel vom Code gepostet...
Kann sein, dass der controller null ist, den du mit fxmlLoader.getController() holst...
Wenn du hier einen Breakpoint setzt und das ganze im debuging mode startest, siehst du ob hier clc NULL ist, oder nicht.
Java:
CargoListController clc = (CargoListController) fxmlLoader.getController();
Ansonsten poste doch mal den ganzen Code (FXML controller- Klasse, FXML und die Klasse, wo der bereits gepostete Code vorhanden ist).
gruss knilch

ja, ich hatte einen Breakpoint gesetzt und die Rückgabe der Zeile 5 ist NULL
 
Sieht soweit ganz gut aus, jetzt musst du nur noch die nicht-statische Methode von load aufrufen 😉

Code:
root = fxmlLoader.load(getClass().getResource("../application/CargoList.fxml")[B][COLOR="Red"].openStream()[/COLOR][/B]);
 
Zuletzt bearbeitet:
Sieht soweit ganz gut aus, jetzt musst du nur noch die nicht-statische Methode von load aufrufen 😉

Code:
root = fxmlLoader.load(getClass().getResource("../application/CargoList.fxml")[B][COLOR="Red"].openStream()[/COLOR][/B]);

Ok, vielen Dank! Jetzt funktioniert es!

Hier ist die entscheidende Zeile:
Java:
root = (Parent) fxmlLoader.load(getClass().getResource("../application/CargoList.fxml").openStream());
 

Zurück
Oben