當前位置:首頁 > 科技 > 正文

JavaFX“位置是必需的 ” 即使在同一包裝中

将文件移動到main / resources目錄有效。

就我而言,以上所有都不是問題。

我更換時解決了我的問題:

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

與:

getClass().getClassLoader().getResource("ui_layout.fxml")
解決方法

我正在嘗試運行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文件的副本:










    
        
    
    

控制器類确實存在,并且位于fxml文件中指定的包中。我所有的名字都是正确的,也是我認為應該的位置。我想念什麼?我确實嘗試重命名我的fxml文件,以防這是一個名稱問題。請幫忙。僅供參考,我在OSX上使用Intellij IDEA。

更新:這是一個Maven問題。我為此項目安裝了Maven,這引起了問題。我暫時删除了Maven,因此沒有它我可以繼續工作。有沒有人對使用Maven時如何最好地解決這一問題有任何見解?

總結

以上是真正的電腦專家為你收集整理的JavaFX“位置是必需的。” 即使在同一包裝中的全部内容,希望文章能夠幫你解決所遇到的問題。

如果覺得真正的電腦專家網站内容還不錯,歡迎将真正的電腦專家推薦給好友。

你可能想看:

有話要說...

取消
掃碼支持 支付碼