【发布时间】:2021-07-03 05:38:07
【问题描述】:
我完全迷路了。我过去一直在使用 scenebuilder 和 javaFX,但现在我被困了 5 个小时,而且我没有更进一步。让我解释一下:
- 我有一个使用 maven 依赖项的 java Eclipse 项目
- Main 是我想使用 JavaFX 或加载 fxml 的地方
- 该程序需要许多 VCC 文件并提取数据以将它们全部放在一个 excel 中
- 程序可以运行,但我无法将 FXML 文件加载到主文件中,甚至无法在其中显示窗格
现在我的 Java Main 类必须扩展 Application 吗?我尝试了两种方法 - 确实有效。
一些示例代码:
public void start(Stage primaryStage) {
try {
bpmain = new BorderPane(FXMLLoader.load(new File("src\\fxml\\UserInterface.fxml").toURI().toURL()));
primaryStage.setScene(new Scene(bpmain));
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
或者这个(来自原始文档)
public void start(Stage stage) {
Circle circ = new Circle(40, 40, 30);
Group root = new Group(circ);
Scene scene = new Scene(root, 400, 300);
stage.setTitle("My JavaFX Application");
stage.setScene(scene);
stage.show();
}
但是这个启动方法并没有被调用...我应该把它放在哪里?
我的程序看起来应该很简单。我想要一个小的 UI 窗口,让您可以选择 VCC 数据所在的文件夹和一个基本上应该运行 Main 方法的 OK 按钮。
所以一个 TextField,当它在 Main 中选择一个 Path 时,它会被替换(文件路径),只有一个简单的 OK 按钮,上面写着:是的,运行 main - 因为 main 完美运行,只是我无法显示 ui 和我不知道如何真正将它连接到 Main.java
任何帮助表示赞赏 - Ty
【问题讨论】:
-
您是否在
main中致电javafx.application.launch()?这会引导 fx 应用程序。那么你的应用程序必须扩展Application并覆盖start()方法,而不仅仅是重新声明它。 -
是的,我真的不明白。我可以制作一个使用 start 方法扩展应用程序的 MainFX,然后在我的普通 java main 中我会在哪里调用它?
-
您的应用扩展了
Application。它有一个调用launch()的main方法。它覆盖start()。除了提到的方法之外,不应该有任何其他主要方法。其余的都应该由应用程序触发,无论是通过用户界面交互、在 start 方法中还是在某些可能存在的启动事件中。 -
好的,我实际上得到了一些显示(来自文档的 UI) - 现在谢谢,如果我有更多问题,我会回来的。谢谢!
标签: java eclipse javafx scenebuilder