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