2012-01-13 9 views
2

私は長年に渡って多くのJavaアプリケーションを作成しましたが、その大部分は数百行しかなくても(多くても)いくつかのクラスを持つ単純なコマンドラインプログラムでした。Java - アプリケーション用GUIの構築

私の質問はこれです:

どのように私は今/コードこのアプリケーションへのインタフェースを設計しますか?どこから始めますか?私は関係するステップを記述するチュートリアル/リソースはありますか? 私はスウィングが存在することを知っていますが、どこから始めますか?それは唯一の選択肢ですか?

すべてのヘルプ/支援感謝...

+3

まず、アプリケーションをどのように展開するか決めたいと思うでしょう。デスクトップアプリケーションであれば、スイングはうまくいくでしょう。もっと分散されたアプリケーションであれば、他のアイデアがうまくいくかもしれません(後者は私の専門分野ではないので、これ以上具体的な推奨はしません)。 Swingを選択する場合は、[チュートリアル](http://docs.oracle.com/javase/tutorial/uiswing/components/index.html)を参照してください。 –

+0

3つのリッチクライアントGUIツールキットをタグに追加しました。 –

+0

[Java Web Start](http://stackoverflow.com/tags/java-web-start/info)は良い展開オプションです。 – trashgod

答えて

5

あなたは(拡張API)と一緒にコアGUIのAPI java.awtとそのサブパッケージを学ばなければならないjavax.swingとそのサブパッケージ。あなたは始めることができます - The Java Tutorial.

+0

しかし、AWTコンポーネントを無視し、Swingを使用してください。 –

+0

@AndrewThompson - ありがとう! AWTのいくつかのコンポーネント、特にWidgetコンポーネント(Label、TextField、Frame、Panelなど)は避けるべきですが、AWT API/events/layout/print/graphics全体を避けてください。 – adatapost

+1

その明確化により、我々は合意に達している。スイングは、AWTパッケージの非コンポーネント部分に大きく基づいています(そして、少数のAWTコンポーネントの継承/一部をベースにしています)。 –

2

いいえ、スイングは唯一の選択肢ではありません。 Swingは、java.awtのいくつかのGUIオブジェクトの「新しく改良された」バージョンです。ほとんどのSwingオブジェクトは、AWTのカウンタパーツから完全に新しくなっています。 SwingとAWT、それはAVDが(The Java Tutorial)にあなたをリンクチュートリアルを開始することがベストですので、コアJava APIの一部である

+0

Swingコンポーネントでフォーマットされたドキュメントをサポートする 'JTable'、' JTree' .. AWTは類似のコンポーネント/機能を提供しないので、この種のものは "新しく改良された"ものを超えています。 –

9

Java用のリッチクライアントGUIツールキットは基本的に両方:

  • AWT SunのAbstract Window Toolkitは、ネイティブコンポーネントを使用したツールキットであるGUIを作成するためのオリジナルのコンポーネントキットでした。 AWTは、まだそのようなGraphics/Color /ジャワ2D、Image & BufferedImage、印刷、D'n'D ..
  • Swing現在、メインストリームデスクトップアプリケーションとしてJ2SEのGUIの非常に重要な部分のコアを含んでいます。コンポーネントツールキットです。 Swingはコンポーネントを内部的に生成し、GUIにPluggable Look and Feelを設定することができます。 Swingは、JTable,JTreeなどのAWTでは使用できないコンポーネント&の機能を提供し、Swingコンポーネントの書式付き書類(例:RTF &シンプルHTML)のサポートを提供しています。詳細はthings that Swing provides beyond AWTを参照してください。
  • Java FX 2 AFAIU、Swingの(最終的な)置換えを意図しています。
  • SWTは、Oracleによって書かれたものではなく、ネイティブを使用する別の選択肢です。リッチクライアントプログラミングを学ぶ人にはお勧めできません。なぜなら、Swingに関連して回答を得る方がはるかに簡単なからです。
+0

スイングの代わりにSWTを強くお勧めします。 Eclipse RCPはSwingアプリケーションフレームワークよりも成熟しています。そして、私にとって最も重要な理由の1つは、LinuxでのSwing/AWTのフォントレンダリングが恐ろしいことです。 – wyz

+1

@Andrew Thompson偉大な心は似ていると思う! +1 – mKorbel

+0

@wyzおそらく、ランタイム[AAフォント設定](http://docs.oracle.com/javase/7/docs/technotes/guides/2d/flags.html#aaFonts)の設定を調べる必要があります。またはその他のフォント関連の設定。 –