0

Mac OS を実行しているプロジェクト メンバーで FXML の読み込みに問題があります。私はJavaコード内のJavaFXロードプロセス全体にかなり慣れていませんが、これが現時点で私のコードがどのように設定されているかです。このクラスは ControlPanel.java と呼ばれ、fxml は controlPanel.fxml であり、onAction# メソッドが含まれており、これらのメソッドのコントローラーとして ControlPanel.java を使用しています。Windowsオペレーティングシステムでは完全に正常に動作しますが、Eclipseで実行しようとすると、開きますが何も表示されません. 私が何か間違ったことをしているのだろうかと思っています。最上位のドキュメント内で、アンカー ペイン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 の 2 番目のインスタンスを作成します (1 番目は Application.launch() で作成されます)。そのため、コントローラー インスタンスを設定するか、別のクラスをコントロールとして使用する必要があります。

Mac では機能せず、Windows では機能する理由を説明するには、さらにコードを確認する必要があります。

于 2013-01-10T08:00:39.290 に答える