Hallo,
irgendwie funktioniert bei mir die Verbindung zwischen einer FXML-Datei und dem Quellcode nicht.
Main-Klasse:
Controller-Klasse:
FXML-Datei:
Obwohl ich in der FXML-Datei die Controller-Klasse als Controller angegeben habe und dem Label die id "title" geben habe + in der Controller-Klasse die Annotation (nennt man das so?) "@FXML" angegeben habe, scheint es so zu sein, dass der Label "title" nicht intialisiert wird, weil ich jedes mal eine NullPointerException bekomme.
PS: Die Method getTitleText() macht eigentlich gar keinen Sinn, weil ich den Text ja schon in der FXML-Datei angebe. Soll halt nur mein Problem darstellen, nur ein Beispiel.
MfG
Kenta1561
irgendwie funktioniert bei mir die Verbindung zwischen einer FXML-Datei und dem Quellcode nicht.
Main-Klasse:
Java:
package main.java;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class Main extends Application{
public void start(Stage primaryStage) {
try {
Pane root = FXMLLoader.load(getClass().getResource("/main/resources/LoadingScreen.fxml"));
Scene rootScene = new Scene(root);
primaryStage.setScene(rootScene);
primaryStage.initStyle(StageStyle.UNDECORATED);
primaryStage.show();
Controller controller = new Controller();
System.out.println(controller.getTitleText());
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Controller-Klasse:
Java:
package main.java;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
public class Controller {
@FXML
Label title;
public String getTitleText() {
return title.getText();
}
}
FXML-Datei:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="232.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="main.java.Controller">
<children>
<Label layoutX="43.0" layoutY="65.0" text="Test" textFill="#30ffa2" fx:id="title">
<font>
<Font name="Microsoft YaHei Light" size="40.0" />
</font>
</Label>
<Label layoutX="136.0" layoutY="141.0" text="Ⓒ 2016 Kenta1561">
<font>
<Font name="Microsoft YaHei UI Light" size="14.0" />
</font>
</Label>
<Label layoutX="328.0" layoutY="203.0" text="Version 1.0" textFill="#609a09">
<font>
<Font name="Microsoft YaHei UI Light" size="12.0" />
</font>
</Label>
</children>
</Pane>
Obwohl ich in der FXML-Datei die Controller-Klasse als Controller angegeben habe und dem Label die id "title" geben habe + in der Controller-Klasse die Annotation (nennt man das so?) "@FXML" angegeben habe, scheint es so zu sein, dass der Label "title" nicht intialisiert wird, weil ich jedes mal eine NullPointerException bekomme.
PS: Die Method getTitleText() macht eigentlich gar keinen Sinn, weil ich den Text ja schon in der FXML-Datei angebe. Soll halt nur mein Problem darstellen, nur ein Beispiel.
MfG
Kenta1561