【发布时间】:2020-02-24 16:17:22
【问题描述】:
您好,我是 JavaFx 的新手。我为我的 JavaFx 项目 创建了一个 Maven 项目。
我正在尝试加载第一个 .fxml 文件,但是我遇到了上述异常。我已经尝试了一些事情,但我只是继续兜圈子。得到以下异常:
java.lang.NullPointerException: Location is required.
控制器类
public class HomeScreenController extends Application {
@FXML
private Button ProjectProp;
@FXML
private Button Tech;
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("homescreen.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
.fxml 文件
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.thales.HomeScreenController">
<children>
<Button fx:id="projectProp" layoutX="46.0" layoutY="38.0" mnemonicParsing="false" prefHeight="50.0" prefWidth="145.0" text="Project Properties" />
<Button fx:id="tech" layoutX="46.0" layoutY="114.0" mnemonicParsing="false" prefHeight="50.0" prefWidth="145.0" text="Technologies" />
</children>
</AnchorPane>
结构
【问题讨论】:
-
顺便说一句,使用与
Application子类和控制器相同的类是个坏主意。我很确定这不会导致问题,但它会造成很多混乱:您最终得到了该类的两个实例,而@FXML-injected 字段仅在其中一个中初始化。