我遇到了运行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");
}
答案 0 :(得分:1)
首先,您要创建第二个ControlPanel实例(通过Application.launch()创建第一个实例)。因此,您应该设置控制器实例或使用不同的类作为控件。
我们需要查看更多代码来说明为什么它在Mac上不起作用,但在Windows上