JavaFX "Location is required."即使它在同一个包中

标签 java javafx-2

我正在尝试让我的 JavaFX 程序运行,但遇到了一些困难。我不断收到“java.lang.NullPointerException:需要位置”的错误。 fxml 文件与 Application 类在同一个包中。这是我非常简单的代码:

package com.kromalights.designer.entry;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("main.fxml"));
        primaryStage.setTitle("Kromalights Designer");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}

这是我的 main.fxml 文件的副本:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<?scenebuilder-stylesheet mailStyles.css?>
<?import java.net.*?>

<BorderPane prefHeight="300.0" prefWidth="300.0" xmlns:fx="http://javafx.com/fxml/1"
        xmlns="http://javafx.com/javafx/2.2"
        fx:controller="com.kromalights.designer.entry.Controller">
    <bottom>
        <Pane prefHeight="200.0" prefWidth="200.0"/>
    </bottom>
    <center>
        <Pane prefHeight="200.0" prefWidth="200.0"/>
    </center>
    <left>
        <VBox prefHeight="200.0" prefWidth="100.0"/>
    </left>
    <top>
        <HBox prefHeight="100.0" prefWidth="200.0"/>
    </top>
    <stylesheets>
        <URL value="@mainStyles.css" />
    </stylesheets>
</BorderPane>

Controller 类确实存在并且在 fxml 文件中指定的包中。我所有的名字都是正确的,并且是我认为应该在的地方。我错过了什么?我确实尝试重命名我的 fxml 文件,以防出现名称问题。请帮忙。仅供引用,我在 OSX 上使用 Intellij IDEA。

更新:这是一个 Maven 问题。我为这个项目设置了 Maven,这导致了这个问题。我暂时删除了 Maven,这样我就可以在没有它的情况下继续工作。有没有人知道我在使用 Maven 时如何最好地处理这个问题?

最佳答案

就我而言,以上所有都不是问题。

更换后问题就解决了:

getClass().getResource("ui_layout.fxml")

与:

getClass().getClassLoader().getResource("ui_layout.fxml")

关于JavaFX "Location is required."即使它在同一个包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20507591/

相关文章:

java - 可定制的@Autowired

java - 在 EditText 中添加一个字符

Java/JavaFX2 : dynamic GUI, 检测哪个按钮被按下,提取id

javafx-2 - 引用外部 jar 的 JavaFx 2.0 应用程序

java - 如何制作自定义 Java/JavaFX 控制台?

java - 如何在Servlet中加载分类器(Weka)

java - 线程和闪屏

java - 从其他类访问数组

javafx 2 javascript api - 获取 java Controller

java - Clojure——如何使用 deftype 定义公共(public)可变成员?