そのため、ここでも、完全に Swing を使用していた既存の Java アプリケーションを JavaFX を使用するように変換しています。ただし、アプリケーションは JavaFX を完全に使用するわけではありません。これにより、アラート/ダイアログとモダリティに問題が発生しているようです。現在、Java 8u40 を使用しています。
主なアプリケーションは、基本的にメニューを持つ JFrame にあります。メイン コンテンツ ペインは JDesktopPane であり、MenuItem をクリックすると、DeskopPane 内に新しい JInternalFrames が開きます。JavaFX に変換している画面は、現時点では基本的に JInternalFrame 内の JFXPanels です。JFXPanels から開かれた Alerts/Dialogs は、パネル自体に対してはモーダルですが、JInternalFrame、DeskopPane、Menu などに対してはモーダルではありません。
私は DialogPane のドキュメントを読んで、JavaFX の将来のリリースでいくつかの軽量ダイアログと、場合によっては InternalFrames を導入することを計画しているので、この機能についてはもう少し待つ必要があるかもしれません。しかし、理想的には、新しいアラート/ダイアログを開くときは、アプリケーション全体に対してモーダルになります。
編集:現在、モーダルダイアログに対して次のことを行っています:
((Stage)getDialogPane().getScene().getWindow()).setAlwaysOnTop(true);
これにより、ダイアログは常に最前面に表示されますが、メイン アプリケーションが最小化されている場合でも、ダイアログは他のアプリケーションよりも前面に表示されたままになります。また、フレーム内の Swing コンポーネントへの入力もブロックしません。