maven Java Fx文件位置异常
你好,我是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>
结构
# 1 楼答案
资源的Java代码和路径看起来是正确的,所以您的设置和/或构建过程有问题
从您的屏幕截图来看,您似乎已经在)。在那里你应该有一个
src/main/resources
源文件夹中创建了一个名为org.thales
的文件夹。这里需要的是一个名为org.thales
的包。您可以使用文件浏览器并查看构建文件夹(在Maven中,默认情况下,该文件夹将为^{org
目录,以及一个thales
子目录,它应该包含你所有的类文件和FXML文件。我怀疑你会发现一个org.thales
目录中有FXML文件在eclipse的左窗格中右键单击
src/main/resources
,选择“新建”,然后选择“包”,并输入org.thales
作为包名。然后将FXML文件(您可以在左侧eclipse窗格中拖放它们)移动到包中。这应该可以解决问题。(您还可以通过删除org.thales
文件夹进行清理,该文件夹现在应该是空的。)# 2 楼答案
您是否尝试过在文件名(包括文件结构)中添加正斜杠
我不太熟悉您正在使用的IDE,但我认为它在参考资料中有所体现,但如果您嵌套文件,则需要指定在哪里找到它。此外,在我自己的项目中,我总是有一个属性文件,它与fxml位于同一个文件夹中。例如,我的上一个项目是这样的
如果没有任何属性,可以创建一个名为“strings.properties”的空文件,将其放置在与。fxml