如何解决如何在 Main 中使用 JavaFX
我完全迷失了 atm。我过去一直在使用scenebuilder和javaFX,但现在我被困了5个小时,我没有更进一步。让我解释一下:
- 我有一个可用的 java Eclipse 项目,使用 Maven 依赖项
- Main 是我想使用 JavaFX 或加载 fxml 的地方
- 该程序需要许多 VCC 文件并提取数据以将它们放在一个 excel 中
- 程序可以运行,但我无法将 FXML 文件加载到主文件中,甚至无法在其中显示窗格
现在我的 Java Main 类必须扩展应用程序吗?我尝试了两种方法 - 都有效。
一些示例代码:
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();
}
但是这个 start 方法没有被调用......我把它放在哪里?
我的程序应该是什么样子实际上很简单。我想要一个小的 UI Windows,它可以让你选择一个 VCC 数据所在的文件夹和一个基本上应该运行 Main 方法的 OK 按钮。
所以一个 TextField,当它在 Main 中选择一个 Path 时被替换(文件路径),并且只是一个简单的 OK 按钮,上面写着:是的,运行主 - 因为主工作完美,只是我无法显示 ui 和我不知道如何真正将其连接到 Main.java
感谢任何帮助 - Ty
解决方法
选项 1
public class Launch extends Application {
public static Stage stage = null;
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("/fxml/Main.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
this.stage = stage;
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
选项 2:
public class SidebarController implements Initializable {
@Override
public void initialize(URL url,ResourceBundle rb) {
}
@FXML
void btnHome_OnMouseClicked(MouseEvent event) throws IOException {
BorderPane borderPane = (BorderPane) ((Node) event.getSource()).getScene().getRoot();
Parent sidebar = FXMLLoader.load(getClass().getResource("/fxml/ContentArea.fxml"));
borderPane.setCenter(sidebar);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。