微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Main 中使用 JavaFX

如何解决如何在 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 举报,一经查实,本站将立刻删除。