gpt4 book ai didi

java - 如何解决 JavaFX 项目中的 'Location is required'

转载 作者:行者123 更新时间:2023-12-01 17:17:41 24 4
gpt4 key购买 nike

我已在场景生成器中编辑了 FXML 文档 (View.fxml),并尝试在 Application.start 中调用它

查看.fxml

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

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>


<AnchorPane prefHeight="300.0" prefWidth="400.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/11.0.1">
<children>
<Button layoutX="174.0" layoutY="150.0" mnemonicParsing="false" text="Button" />
<Label layoutX="173.0" layoutY="103.0" text="CLick here" />
</children>
</AnchorPane>

Main.java

package application;

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 stage) {
try {
Parent parent = FXMLLoader.load(getClass().getResource("gui/View.fxml"));
Scene scene = new Scene(parent);
stage.setScene(scene);
stage.show();
} catch(Exception e) {
e.printStackTrace();
}
}

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

我在 module-info.java 中插入了“require javafx.fxml”,它在控制台上显示了“java.lang.NullPointerException:需要位置”消息。

堆栈跟踪:

java.lang.NullPointerException: Location is required.
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3230)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3194)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3163)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3136)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3113)
at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3106)
at javafx1/application.Main.start(Main.java:14)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:834)

最佳答案

有必要删除 module-info.java 并添加参数'''--模块路径 --添加模块'''

就我而言,我必须设置参数

'''--模块路径 C:\java-libs\openjfx-11.0.2_windows-x64_bin-sdk\javafx-sdk-11.0.2\lib --add-modules javafx.fxml,javafx.controls'''

向 JVM 通知编译代码所需的库路径和模块。

关于java - 如何解决 JavaFX 项目中的 'Location is required',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61351631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com