2

私はSwingに夢中になっていて、JavaFXを学び始めたばかりです。どちらを使用するかについて、SOについていくつか回答しましたが、まだ決心できません。

両方の世界を最大限に活用することは可能ですか?

たとえば、JavaFXを使用して、視覚的に魅力的なグラフィックを提供し、必要に応じてJavaFXにSwingを追加しますか?

4

3 に答える 3

3

JFXPanelコントロールを介してSwingアプリケーションでJavaFXを使用できます。SwingInterOpサンプルを参照してください。NetBeansRCPなどの高度なSwingベースのプラットフォーム内からJavaFXを利用することもできます。

JavaFX / Swing統合の現在の制限は、JavaFXコンポーネントをSwingアプリケーションに埋め込むことはできますが、SwingコンポーネントをJavaFXアプリケーションに埋め込むことはできないことです。 RT-12100 Swing in JavaFX埋め込みサポートは、現在Java8で予定されています。

開発するグリーンフィールドの新しいアプリケーションがある場合は、いずれかのテクノロジを選択し、それを維持するか、少なくとも統合ポイントをローカライズして、その間の数を少なくすることをお勧めします。どちらのフレームワークも大きく、学習に時間がかかります。さらに、Swing処理がSwingイベントディスパッチスレッドで実行され、JavaFX処理がJavaFXアプリケーションスレッドで実行されるように注意する必要があるなど、統合の問題を回避できます。

JavaFXはSWTとも統合されており、その統合は現在JavaFX / Swing統合よりも単純です(心配するGUIスレッドが1つしかないため)。

OracleのJavaFX/Swing相互運用機能サンプルのスクリーンショットは次のとおりです。

swinginterop画像

どちらを使用するかについて、SOについていくつか回答しましたが、まだ決心できません。

そうするのではなく、小さなアプリケーションを選び、SwingとJavaFXで最初から実装して、どちらが好きかを確認することをお勧めします。実践的な経験に代わるものがないため、より良い時間を費やすことができます。それでも質問がある場合(できればより具体的で的を絞ったもの)、StackOverflowに戻って調査または質問してください。

于 2013-03-15T20:31:20.097 に答える
2

それはそれらを学ぶためのあなたの動機に依存します。近い将来、主にCVを向上させ、ビジネスにとって魅力的なものにすることを目指している場合、(少なくとも当面は)JavaFXよりも多くのアプリケーションがSwingで記述されています。これは、JavaFXがはるかに新しいツールキットであるためです。

ただし、より長期的に考えている場合、または仕事に最適なツールが必要な場合は、個人的にJavaFXの方が柔軟性が高く、見た目に美しい方法でコーディングするのがはるかに簡単で、習得も簡単です(APIの背後にあります)現時点での唯一の反対点は、私が本当に含めたい機能がいくつかあることですが、まだ含まれていません(繰り返しになりますが、これは新しいツールキットを使用することで得られる機能です。 。)

また、この2つを混合しないことをお勧めします。私は現在、JavaFXを使用する2つのプロジェクトに携わっています。1つは完全にJavaFXベースで、もう1つはFXとswingの混合です。後者は、主にディスパッチスレッドの違いのために、維持するのがはるかに面倒です。

于 2013-03-16T09:21:20.340 に答える
2

以前のポスターで述べたように、SwingアプリケーションでJavaFXを使用できるようになりました。しかし、OracleはJavaFXがJavaのデスクトップの未来であると宣言しているので、それを学んでみませんか。私は両方を最新の状態に保とうとしましたが、それは雑用です。将来的にはJavaFXだけに焦点を当てることを計画しています。混乱する可能性は少なくなります。

とはいえ、JavaFXはまだJDKの本格的なメンバーではないようです。特に、Clojureなどの他の言語と組み合わせて使用​​する場合はなおさらです。JavaFXのバージョンに応じて、ビルドツールに取り込むためのさまざまな方法があります。しかし、その状況はリリースごとに良くなっています。

于 2013-03-16T15:06:31.327 に答える