awt Graphics2Dと JavaFX GraphicsContextの間に組み込みの相互運用性はありません。これらは完全に別個の UI ツールキット用の完全に別個の API です。
おすすめ
既存の Swing アプリケーションを変更またはプラグインする必要はありますか?
はい => コードをjava.awt.Graphicsインターフェイスに追加し、(JavaFX に埋め込む場合) awt でレンダリングされたグラフィックを SwingNode にラップするか、以下に定義するブリッジを使用します。
いいえ => JavaFX グラフィックス コンテキストまたは JavaFX シーン グラフへの直接のコード。
JavaFX での Swing (および AWT) の表示
JavaFX で Swing を表示するには、 Java 8 早期アクセス リリースで利用可能なSwingNodeを使用できます。
Swing での JavaFX の表示
Swing で JavaFX を表示するには、JFXPanelを使用できます。JavaFX キャンバスを JFXPanel に配置します。詳細については、JavaFX for Swing Developersチュートリアルを参照してください。
AWT と JavaFX グラフィックスの橋渡し
ブリッジ パターンを実装して抽象インターフェイスを開発し、構成済みの Graphics 実装に委譲することができます。私がリンクしたwikiページは、これがどのように行われるかの非常に良い例を提供します. このようなブリッジの実装は非常に簡単だと思います。たとえば、java.awt.Graphicsを実装し、API 呼び出しを JavaFX GraphicsContext 操作にマップできます。ブリッジが完成したら、ブリッジ インターフェースにコーディングするだけで、ブリッジは API 呼び出しを、選択した実装に応じて適切な awt または javafx メソッドのスレッドセーフな呼び出しに変換します。
更新: 2014 年 5 月 20 日
David Gilbert ( JFreeChart作成者) がブリッジを作成しました。プロジェクトは FXGraphics2D です。
FXGraphics2D は、JavaFX Canvas を対象とする Graphics2D API の無料実装です。このコードは、
Orson Chartsと
JFreeChartを使用するために開発されましたが、Graphics2D API を使用するすべてのコードに一般的に役立ちます。
FXGraphics2D には JDK 1.8.0 以降が必要であり、(3 条項) BSD スタイルのライセンス条件に基づいてライセンス供与されます。
FXGraphics2D のホームページとgithub の場所。
ねじ切りのアドバイス
JavaFX と Swing Code を混在させる場合は、スレッドの管理方法に注意してください。どちらのツールキットもシングルスレッドであり、どちらのツールキットも独自のスレッドで処理を実行するため、JavaFX コードは JavaFX スレッドで実行し、Swing コードは Swing スレッドで実行する必要があります。
JavaFX SceneGraph を検討してください
JavaFX には、2D 形状をレンダリングできるシーン グラフが含まれています。直接描画キャンバスの代わりにシーン グラフを使用することを検討してください。
将来の可能性
JavaFX の将来のバージョンには、OpenGL バッファに直接レンダリングできるようにするOpenGLNodeのようなものが含まれる可能性があります。このようなノードで描画するための API は、JavaFX キャンバス API とは大きく異なる可能性があります (たとえば、joglなどを使用します)。
リンクされたサンプル記事に関するメモ
質問でリンクする記事は、JavaFX 1.x に関連しています。一般に、JavaFX 1.x に関連する古い記事はすべて完全に無視してください。JavaFX 1.x は完全に時代遅れであり、そのような記事の情報は混乱を招く可能性があるためです。
JavaFX 2+ に関連する記事は関連性があり、それらの最良の情報源は公式の Oracle JavaFX 2 ドキュメントです。