在Mac OS中未正确加载JavaFX FXML

在Mac OS中未正确加载JavaFX FXML,java,eclipse,macos,javafx,fxml,Java,Eclipse,Macos,Javafx,Fxml,我与运行mac os的项目成员在加载FXML时遇到问题。我对java代码中的整个JavaFX加载过程相当陌生,但目前我的代码就是这样编写的。这个类叫做ControlPanel.java,fxml是ControlPanel.fxml,它包含onAction方法,我使用ControlPanel.java作为这些方法的控制器。它在windows操作系统上运行完全正常,但当我们尝试在eclipse中运行它时,它会打开,但不会显示任何内容。只是想知道我是否做错了什么。我在文档的顶层定义了控制器,它是一个a

我与运行mac os的项目成员在加载FXML时遇到问题。我对java代码中的整个JavaFX加载过程相当陌生,但目前我的代码就是这样编写的。这个类叫做ControlPanel.java,fxml是ControlPanel.fxml,它包含onAction方法,我使用ControlPanel.java作为这些方法的控制器。它在windows操作系统上运行完全正常,但当我们尝试在eclipse中运行它时,它会打开,但不会显示任何内容。只是想知道我是否做错了什么。我在文档的顶层定义了控制器,它是一个anchorPanefx:controller=“project.fx.ControlPanel”


首先,您正在创建ControlPanel的第二个实例(通过Application.launch()创建的第一个ist)。因此,您应该设置控制器实例或使用其他类作为控件

我们需要看到更多的代码来说明为什么它不能在Mac上运行,而只能在Windows上运行

public static void main(String[] args) {
    Application.launch(ControlPanel.class, (java.lang.String[])null);
}

@Override
public void start(Stage primaryStage) {
    try {

        Parent page = (Parent) FXMLLoader.load(getClass().getResource("controlPanel.fxml"), null, new JavaFXBuilderFactory());

        Scene scene = new Scene(page);
        primaryStage.initStyle(StageStyle.TRANSPARENT);
        primaryStage.setScene(scene);
        primaryStage.show();
    } catch (Exception ex) {
        Logger.getLogger(ControlPanel.class.getName()).log(Level.SEVERE, null, ex);
    }

}

@FXML
protected void doSomething() {
    System.out.println("Done something");
}