Java GUIフレームワーク。何を選ぶ?Swing、SWT、AWT、SwingX、JGoodies、JavaFX、Apache Pivot?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 Java用のGUIフレームワークはかなりたくさんありますが、今日のフレームワークとして認識されているものは何ですか? 以下は、さまざまなフレームワークに対する私の理解です。間違っている場合は修正してください。これは非常に大まかに定義された一連の質問ですが、リッチなGUIアプリケーションの作成を考えている人にとっては、それでも価値があると思います。 AWT Swingの基盤であり、パフォーマンスは良好ですが、高度なコンポーネントが不足しています。リッチなアプリケーションを作成するつもりなら、AWTはおそらく進むべき道ではありません。ただし、リッチなユーザーインターフェイスを必要としない小さなGUIアプリケーションの場合。これは、実証済みのフレームワークであるため、完全に適合します。 スイング 前述のAWTに基づいています。初期の段階では、それは低速でバグが多いと見なされ、IBMにEclipse用のSWTを作成させました。ただし、Java 5(または6)では、Swingが新しいアプリケーションを構築するための選択のフレームワークになりました。Swingには豊富なコンポーネントがたくさんありますが、一部の領域ではまだ不足しています。1つの例は、並べ替えやフィルタリング/検索を実行できるフル機能のTreeTableコンポーネントがないことです。 SWT IBMがEclipseのために作成した彼らは、当時のSwingはEclipseには適していないと考えていたようです。それ自体はかなり低レベルであり、JNIを介してプラットフォームのネイティブウィジェットを使用します。SwingやAWTとはまったく関係ありません。ただし、APIはやや扱いにくく、直感的ではありません。TreeTableのようないくつかの高度なコンポーネントがあります。(しかし、私はそれらが箱から出してソートおよびフィルタリングをサポートするとは思わない)。SWTは(JNI?を介して)いくつかのネイティブバインディングを使用します。インターネット上では、このフレームワークを今日のプロジェクトで使用しないでください。(何故なの?) SwingX Swingに基づいており、その使命は、swing用の豊富なコンポーネントを作成することです。まだ開発中です。(ただし、あまりアクティブではありません。)たとえばTreeTableなど、非常に優れたコンポーネントのセットを用意します。しかし、TreeTableは、私の知る限り、フィルタリングとソートをサポートしていません。ただし、強調表示による検索はサポートされています。 SwingXはコンポーネント(AFAIU)であり、既存のSwingコンポーネントの拡張または構成であることに注意してください。 JGoodies 私が何も知らないフレームワーク...長所と短所は何ですか?Jgoodiesと他のセットとの違いは何ですか? JGoodies OTOHはPLAFとレイアウトについてです。 JavaFX Java / Oracleの最新のフラッグシップ。リッチなデスクトップまたはWebアプリケーションの開発における事実上の標準であることを約束します。 Apache Pivot Java2Dを使用してUIをレンダリングし、SwingおよびAWTの(IMO、肥大化した)遺産の影響を最小限に抑えます。(@Augustus Thoo) 主な焦点はRIA(リッチインターネットアプリケーション)にあるようですが、デスクトップアプリケーションにも適用できるようです。そして個人的なコメントとして、とても面白そうです!私は特にそれがApacheプロジェクトであることを気に入っています。 https://cwiki.apache.org/PIVOT/frequencyly-asked-questions-faq.html Qtジャンビ c / c ++で書かれたネイティブqtライブラリのjavaラッパー。非常に強力で、広く使用され、受け入れられています。多くのGUIコンポーネントと使いやすいAPIがあります。 http://qt-jambi.org/ だから、私が求めていることの少しを要約しようとする: 今日、Javaで多くの高度なコンポーネントを含むデスクトップアプリケーションを作成したいとします。何を選択すればよいですか?なぜ? これらのフレームワークのどれが非推奨として認識されるべきであり、どれが遠い未来のフレームワークとして認識されるべきですか? 今日の事実上の標準フレームワークは何ですか?Java GUIアプリケーションを作成するためにどのツールを利用しますか? 私はこれを後悔するかもしれませんが、とにかくそれを試してください: C#/。Netには、あらゆる方向に柔軟に使用できる非常に優れた使いやすいコンポーネントのセットがあると言われています。そして、異なるJavaフレームワークをある程度調査した後、Javaについて同じことを言うことができないようです。どうしてこれなの?java(世界で最も広く使用されているプログラミング言語)に同じGUIコンポーネントのセットがないのはなぜですか? javaがguiコンポーネントをはるかに低いレベルに基づいているだけで、探しているすべての高度なコンポーネントを作成することは可能ですが、すべての作業を自分で行う必要はありません。