JavaFX FXML在Mac OS中无法正确加载

时间:2013-01-10 02:06:46

标签: java eclipse macos javafx fxml

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

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");
}

1 个答案:

答案 0 :(得分:1)

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

我们需要查看更多代码来说明为什么它在Mac上不起作用,但在Windows上