JavaFx项目出现异常后怎么解决
来源:爱站网时间:2022-01-11编辑:网友分享
不少编程新手朋友在遇到JavaFx项目出现异常后都不会解决,爱站技术频道小编为此整理了以下相关资料,有需要的朋友可以前来阅读,希望这篇文章能帮助到大家伙。
问题描述
您好,我是JavaFx的新手。我已经为JavaFx项目创建了一个Maven项目。我正在尝试加载第一个.fxml文件,但是出现上述异常。我尝试了一些事情,但是我一直在转圈。得到以下异常:java.lang.NullPointerException: Location is required.
ControllerClass
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>
思路:
您是否尝试过在包含文件结构的文件名中添加正斜杠?
Parent root = FXMLLoader.load(getClass().getResource("/com/thales/homescreen.fxml"));
我不太了解您所使用的IDE,但是我认为它会在资源中查找,但是如果您嵌套文件,则需要指定在哪里找到它。同样查看我自己的项目,我总是有一个属性文件,该文件与fxml驻留在同一文件夹中,例如,我的上一个项目是这样的
private static final String LAYOUT_RESOURCE = "imsort.fxml";
private static final String RESOURCE_BUNDLE = "strings";
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
ClassLoader classLoader = getClass().getClassLoader();
ResourceBundle bundle = ResourceBundle.getBundle(RESOURCE_BUNDLE);
FXMLLoader fxmlLoader = new FXMLLoader(classLoader.getResource(LAYOUT_RESOURCE), bundle);
Parent root = fxmlLoader.load();
Scene scene = new Scene(root);
stage.setResizable(true);
stage.setScene(scene);
stage.sizeToScene();
stage.show();
setStageSize(stage, root);
}
以上就是小编给大家整理的相关内容了,不知道各位小伙伴都了解清楚了没有,对此还有疑惑的,可以来网站咨询小编。