0

eclipse ジョブから javafx ui を呼び出そうとするとエラーが発生するので、別のブログを検索しました。そして、JavaUIを実行するには、javafxスレッドで実行する必要があります。

void run{
    Platform.runLater(new Runnable() {
                @Override
                public void run() {

                    commanddialog = new CommandloggerDialog(window);
                    commanddialog.open();

                    // javaFX operations should go here

                }
            });
}

次に、ツールキットが初期化されていないというエラーが発生しました。このスレッドの外でjavafx用のツールキットを作成する必要があることを知ったので、メソッドを次のように変更しました

 Shell shell = new Shell(window.getShell().getDisplay());

        shell.setLayout(new FillLayout());

        FXCanvas canvas = new FXCanvas(shell, SWT.None);
        Platform.runLater(new Runnable() {
            @Override
            public void run() {

                commanddialog = new CommandloggerDialog(window);
                commanddialog.open();

                // javaFX operations should go here

            }
        });

    }

ここで fxcanvas は javafxtoolkit です。しかし、それらをすべて追加した後、以前のエラーが戻ってきました。つまり、FX アプリケーション スレッドではありません。

誰が私が間違っているのか教えてもらえますか?

4

1 に答える 1