2

私は次のことができるかどうかを確認しようとしています:

  • Javascript で JavaFX を呼び出すようにします。
  • 次に、JavaFX にスレッドを生成させ、Javascript から与えられた作業を実行させます。
  • Javascript に戻り、JavaFX が生成されたスレッドで作業している間、Javascript を続行できるようにします。
  • 次に、生成されたスレッドからの作業が完了すると、JavaFX が Javascript に通知するようにします。

私の理解では、Javascript で広くサポートされている実際のマルチスレッドはありません。私は Javascript と JavaFX を使用したプロジェクトに取り組んでいますが、代わりにこれが機能すると役立ちます。どんな助けでも大歓迎です、ありがとう!

編集
JavaFX で WebEngine を使用して UI を処理し、Javascript で HTML を使用して UI を作成しています。私はNashorn jjs -fxを使用していません。

4

1 に答える 1

0

先週、このようなことをしようとしましたが、javascript から javafx へのコールバックを実行しようとするたびに、仮想マシンでエラーが発生しました。

ただし、WebEngine API では

http://docs.oracle.com/javafx/2/api/javafx/scene/web/WebEngine.html

「JavaScript から Java へのコールバック」というセクションに、これを行う方法についての小さな例があります。

この例が機能する場合は、その後タスクを開始するだけで済みます。それについて説明している javafx の並行性に関する記事があります。

http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm

私が作成した小さなプログラムは、loadWorker が変更されるたびに executeScript() 関数を使用して JavaScript オブジェクトをチェックし、オブジェクトが存在する場合はタスクを実行します。

私はこれを確認していませんが、例が機能しない場合は、WebEngine に含まれている confirmHandler または promptHandler を使用してタスクを開始してみてください。

于 2013-09-05T19:46:37.883 に答える