2 回答
TA贡献1830条经验 获得超3个赞
解决方案几乎在堆栈跟踪中提到;问题缩小到它告诉您缺少的导出的程度:
...
Caused by: java.lang.IllegalAccessException: class com.sun.javafx.application.LauncherImpl (in module javafx.graphics) cannot access class com.teachersdunet.hellojavafx.HelloApp (in module com.teachersdunet.hellojavafx) because module com.teachersdunet.hellojavafx does not export com.teachersdunet.hellojavafx to module javafx.graphics
...
将以下行添加到com.teachersdunet.hellojavafx模块中:
module com.teachersdunet.hellojavafx {
...
exports com.teachersdunet.hellojavafx;
}
或者只授予对单个模块的访问权限:
module com.teachersdunet.hellojavafx {
...
exports com.teachersdunet.hellojavafx to javafx.graphics;
}
TA贡献1825条经验 获得超6个赞
你会收到这样的错误,因为你没有在 start 方法中调用任何东西。您必须设置Scene并提供FXML文件的目录。
我已经更正了你的代码。
package com.teachersdunet.hellojavafx;
import javafx.application.Application;
import javafx.stage.Stage;
public class HelloApp extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
try {
Parent root = FXMLLoader.load(getClass().getResource("directory_of_your_fxml_file"));
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
我希望这有帮助。
添加回答
举报