より高速なJavaアプリケーションswtまたはswingに適したライブラリはどれですか?
7 に答える
数年前、Swingは低速だったため、SWTはシステムでネイティブAPI呼び出しを行うために開発されました。ただし、Swingのパフォーマンスは大幅に向上しており、これはもはや当てはまりません。SWTは非標準ですが、Swingは正式にはJava仕様の一部です。JavaFXもSwingの上に構築されます。あなたの仕事がEclipseプラグインを書く必要がない限り、私はSwingを使います。
Swingで開発された本当に優れたアプリを確認するには、JetbrainのJavaIDEをご覧ください。30日間お試しいただけます。
http://www.jetbrains.com/idea/
もちろん、SunのNetbeansも純粋なSwingアプリであり、無料です。
スロースイングアプリはありません。書き方が悪いだけ。そして、これは SWT にも当てはまります。ほとんどのアプリケーションは、Eclipse コア アーキテクチャにより、応答が向上します。J6 より前は、無応答期間中の灰色のウィンドウに関するいくつかの問題がありましたが、スイング PLAF で完全にダブル バッファリングされたアプローチを使用することで、これは完全に解決されます。これ以上の UI フレームワークはありません。UI の無応答を回避するためにマルチスレッドを適切に使用する、より適切に作成されたプログラムしかありません。個人的にはSwingの方が好きです:)
現在、どちらのフレームワークも高速です。これらの基準を確認することをお勧めします。
- SWT は Swing よりも使いやすい (特にこれが初めての UI の場合)
- Swing は古く、より多くのコンポーネントを見つけることができます
- JFace も使用すると、すぐに使用できる多くの強力なウィジェットを見つけることができます (Swing では多くの追加構成が必要になります)。
- Swing はどこでも使用できますが、SWT は使用できません
- SWT は活発に開発されており、ソースがあり、バグはすぐに修正されます。Swing は何年も触れられていませんでしたが、突然 Java 6 の大幅な更新が行われました。Swing に問題があっても、Sun はおそらく気にしません。
- Swing を選択した場合は、SwingXなどのフレームワークを使用します。これにより、あなたの人生ははるかにシンプルになります。
ウィキペディアによると、明確な勝者はありません (ただし、必要に応じて編集できます)。必然的に、どちらか一方をはるかに高速に示すベンチマークを作成できます。Swing では、Java 側でより自由に最適化できます。SWT を使用すると、ウィンドウ システム内でより多くの最適化を行うことができます。
おそらく、パフォーマンスへのより大きな影響は、アプリケーションの動作から生じるでしょう。コードをきれいにすることに集中してください (そして、必要に応じて少しプロファイリングを行います)。
「速い」は主観的です。どちらも速く走ることができますが、Swingを使って足を撃ち、ゆっくりと感じさせるために、何か馬鹿げたことをする方が簡単です。
とはいえ、SwingはSWTよりもコードレベルでの作業が簡単だと思います。
ウィジェット ツールキットに向けた技術的な決定は、私の目にはかなり薄い氷です。アプリケーション フレームワークに関して提供しなければならない作業量は相当なものであり、私見でははるかに決定的です。SWT を支持する唯一の議論は、SWT がネイティブの L&F であるということだと思います。一方、最近のほとんどの UI は、ネイティブではない L&F に向かう傾向があります。これは、カスタム グラデーションとセクションを描画するフォーム フレームワークを使用する Eclipse RCP アプリの傾向にはっきりと見られますが、これは決してネイティブ インターフェイスではありません (同じことが eclipse v4 エラボレーション プロジェクトである e4 にも当てはまります)。要約すると、RCP がプロジェクトのオプションである場合、Eclipse RCP (SWT) を使用します。このプラットフォームが持つ完全性、活力、テンポは他に類を見ません。RCP がオプションでない場合、Spring RCP はかなり説得力があるように見えます (これは Swing ベースです)。
ここ数年、SWT よりも swing を使用して作成されたアプリケーションの方が多くなっています。ただし、SWT の Windows での使いやすさは、Swing よりも優れています。ただし、例外があります ( http://www.amazon.com/Rich-Client-Programming-Plugging-NetBeans/dp/0132354802 ) 。
SWT を使用して開発された RCP アプリのより大きなコミュニティがあります。Netbeans を使用する RCP アプリケーションはそれほど大きくありませんが、かなりの量です。
Java 6 UPDATE 10 が間もなく登場するので、Swing アプリのパフォーマンスはかなり良くなるはずです。とはいえ、パフォーマンスの向上は SWT アプリにも当てはまる可能性があります。
BR、
~A