私はWeb開発者であり、最初の実際のデスクトップアプリケーションの構築を考えています。アイデアは、APIが利用できないWebアプリケーションで非常に反復的なタスクを自動化するツールを構築することです。
Javaを使用したいと思っています。以前はWebのものに使用し、構文をよく知っていて、アプリケーションを可能な限り簡単にクロスプラットフォームにすることを望んでいました。
よくわからないのは、SWTまたはSwingを使用すべきかどうかです。私の主な対象者はWindowsを使用しているため、できるだけネイティブにしたいと考えています。 LinuxとMacは動作するはずですが、ここでは外観はそれほど重要ではありません。
では、各UIフレームワーク、SwingまたはSWTの賛否両論は何でしょうか?
ありがとう。
PS:Eclipseを使用してWindowsで開発しています。しかし、Netbeansで遊ぶことを考えていました。
Pros Swing:
短所スイング:
長所SWT:
短所SWT:
考慮すべき重要なことは、一部のユーザーと一部の再販業者(Dell)が64ビットWindowsに64ビットVMをインストールし、32ビットと64ビットのVMで同じSWTライブラリを使用できないことです。
これは、ユーザーが32ビットまたは64ビットのJava VMを持っているかどうかに応じて、異なるパッケージを配布およびテストする必要があることを意味します。たとえば、Azureusの場合は この問題 を参照してください。しかし、Eclipseの場合もあります。現在、フロントダウンロードページのビルドは64ビットVMで実行されません。
プロスイング:
しかし、最終的には、「純粋な」スイングまたはswtを使用することはお勧めしません;-) Swing/swt outにはいくつかのアプリケーションフレームワークがあります。 こちらをご覧ください 。最大のプレーヤーはnetbeans(swing)とEclipse(swt)です。もう1つのNiceフレームワークはグリフォンで、Niceの「コンポーネントセット」はピボット(スイング)です。 Griffonは多くのライブラリと swingだけでなく ;を統合しているため非常に興味深いです。また、ピボット、SWTなど
Swingを使用する理由はいくつかあります。
それはずっと前からあり、より多くの開発努力が適用されてきました。したがって、より多くの機能が完了し、(おそらく)バグが少なくなります。
パフォーマンスの高いアプリケーションの作成に関する多くのドキュメントやその他のガイダンスがあります。
非常に機能豊富なアプリケーションを構築する場合は、 NetBeans RCP (Rich Client Platform)を確認することをお勧めします。学習曲線はありますが、少し練習すればすてきなアプリケーションをすばやくまとめることができます。有効な判断を下すには、Eclipseプラットフォームに関する十分な経験がありません。
RCP全体を使用したくない場合、NetBeansには、引き出して独立して使用できる多くの便利なコンポーネントもあります。
もう1つのアドバイスとして、さまざまなレイアウトマネージャーを検討します。私が学んでいたとき、彼らは長い間私をつまずかせました。最高のもののいくつかは、標準ライブラリにさえありません。 MigLayout (SwingとSWTの両方)および JGoodies フォームツールは、私の意見では最高の2つです。
私は、それがJavaの「ネイティブ」だからという理由だけでスイングを選択します。
さらに、 http://swingx.Java.net/ をご覧ください。
要件としては、Swingを使用する方が簡単であり、SWTほどネイティブプラットフォームに緊密に統合されていないため、最終的にはSwingを使用するように思えます。
通常、スイングは安全な賭けです。
興味深い質問。 (SwingやAWTとは異なり)SWTについて自慢するにはあまりよくありませんが、SWT/Swing/AWTで行われた比較です。
そしてここに、SWTの基本的に何でもチュートリアルを入手できるサイトがあります( http://www.Java2s.com/Tutorial/Java/0280__SWT/Catalog0280__SWT.htm )
あなたが正しい決定をすることを願っています(コーディングに正しい決定がある場合)... :-)
考慮すべきこと:スクリーンリーダー
何らかの理由で、スクリーンリーダー(およびJava AccessBridge for Windows)を使用すると、一部のSwingコンポーネントがうまく機能しません。スクリーンリーダーが異なれば動作も異なることを知ってください。私の経験では、SWT-Treeは、Swing-Treeとスクリーンリーダーの組み合わせよりもはるかに優れたパフォーマンスを発揮します。したがって、アプリケーションでは、SWTコンポーネントとSwingコンポーネントの両方を使用することになりました。
適切なSWTライブラリを配布およびロードするには、次のリンクが役立つことがあります。 http://www.chrisnewland.com/select-correct-swt-jar-for-your-os-and-jvm-at -runtime-191
一握り以上の機能を備えたフル機能のアプリケーションを構築する予定がある場合は、フレームワークとしてEclipse RCPを使用することをお勧めします。
アプリケーションのサイズが大きくなりすぎない場合、または要件があまりにもユニークすぎて通常のビジネスフレームワークで処理できない場合は、Swingを使用して安全にジャンプできます。
最後に、両方のテクノロジーを試して、自分に合ったものを見つけることをお勧めします。 Netbeans対Eclipse対IntelliJのように、ここには絶対的な正解はなく、両方のフレームワークには独自の欠点があります。
プロスイング:
プロSWT:
SWTは、世紀の変わり目におけるSwingの低迷への対応として作成されました。パフォーマンスの違いはごくわずかになってきているので、Swingは標準アプリケーションにとってより良い選択肢だと思います。 SWT/Eclipseには、多くのボイラープレートコードに役立つNiceフレームワークがあります。