web-dev-qa-db-ja.com

純粋なWindowsデスクトップアプリのJavaFX2とSwing

デスクトップアプリを作成する必要があります。Swingを使い始めてからしばらく経ちますので、どちらのテクノロジーでも学習曲線があります。

JavaFX 2を使用してアプリを実行することに利点はありますか?

27
DD.

4年前、私は同じ質問をしていて、当時のSwing用に多くのサードパーティライブラリがまだ作成されているので、Swingを使用するのが最善だという結論に達しました。また、Sunからの1.0リリースは、通常、端が少し荒れていました(私はJSF 1.0とJPA 1.0で自分を焼きました:-)。

今日、多くのライブラリにはJavaFXに対応するものがあるか、JavaFXライブラリとして利用できます。とはいえ、まだSwing専用のライブラリもたくさんあります。また、JavaFX 2.0でいくつかの小さなことを行いましたが、それは本当に完了しているようです。私はショートッパーにぶつかったことはありません。

Swing/JavaFX以外に使用する外部UIライブラリの数(およびどれ)を確認する必要があります。答えが多くないか、たくさんある場合は、Java FXの代替手段(または自分で行うのは簡単))は間違いなくJavaFXを選びます。また、JavaFXでSwingコンポーネントを使用することもできます。

前述のように、JavaFXはSwingを将来廃止する予定であり、OracleはJavaFXにコミットしているようです(これもオープンソースになる予定です)。したがって、JavaFXを強くお勧めします。

2014年4月13日のステータス更新:

  • JavaFXはしばらくの間オープンソースになっています: https://wiki.openjdk.Java.net/display/OpenJFX/Main
  • コミュニティはJavaFXに取り組んでいます。 Swingに対応するものがないJavaFXのみのライブラリが登場し始めています。
  • OracleはJavaFXに取り組んでいることが証明されています。

2年前に確信が持てなかった場合、JavaFXは間違いなく進むべき道のように見えます。 Swingはおそらく長い間使用されますが、現在はメンテナンスモードになっています。大規模なアプリケーション(IntellIJやNetbeansなど)を完全にJavaFXに移植するには、多大な労力が必要です。そして、それらの大規模なアプリケーションにとって、そのような大規模なポートはおそらく現時点では価値がありません。

32
Jasper Siepkes

どちらも良いオプションです:

  • リッチでグラフィカルに拡張されたアプリケーションが必要な場合、JavaFX2.0の機能は非常に魅力的かもしれません。これは、ユーザーエクスペリエンスとビジュアルをクリエイティブに制御できるように設計されています。ターゲットプラットフォームでサポートされていることを確認してください。
  • 可能な限り多くのプラットフォームで実行される標準デスクトップアプリケーションが必要な場合は、Swingがおそらくより安全な選択です(Swingはすべての最新バージョンの一部として使用できることが保証されているためJavaディストリビューション)。また、より成熟したサードパーティライブラリの利点もあります。

どちらも他方に取って代わる可能性はありません。それらはわずかに異なるターゲット用途を持ち、おそらく今後何年にもわたって共存するでしょう。

3
mikera