0

我在运行 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");
}
4

1 回答 1

1

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

我们需要查看更多代码来说明为什么它不能在 Mac 上运行但在 Windows 上运行

于 2013-01-10T08:00:39.290 回答