Javaスイングとは何ですか?

青灯夜游
リリース: 2019-12-26 18:04:05
オリジナル
6765 人が閲覧しました

Javaスイングとは何ですか?

Swing は、Java アプリケーション ユーザー インターフェイスを開発するための開発ツールキット (GUI ツールキット) です。これは Java 基本クラスの一部であり、次のようなグラフィカル ユーザー インターフェイス (GUI) デバイスが含まれています。テキスト ボックス、ボタン、分割ペイン、テーブル。

Swing は、AWT よりも多くの優れた画面表示要素を提供します。これらは純粋な Java で書かれているため、AWT とは異なり、Java 自体と同様にクロスプラットフォームで実行できます。彼らはJFCの一員です。これらは、交換可能なパネルとテーマ (さまざまなオペレーティング システムのデフォルトの特定のテーマ) をサポートしますが、ネイティブ プラットフォームによって提供されるデバイスを実際には使用せず、表面的に模倣するだけです。これは、JAVA でサポートされているパネルをどのプラットフォームでも使用できることを意味します。軽量コンポーネントの欠点は、実行が遅いことですが、利点は、すべてのプラットフォームで均一な動作を採用できることです。

Swing クラス ライブラリの構造

Swing コンポーネントはすべて、MVC (Model-View-Controller、モデル-ビュー-コントローラー) 設計を採用し、GUI コンポーネントの表示を実現します。ロジックとデータ ロジックが分離されているため、プログラマは Render をカスタマイズして GUI コンポーネントの表示外観を変更し、柔軟性を高めることができます。

Swing は、AWT コンテナ クラスから拡張された JComponent コンポーネントを中心に構築されています。

Swing クラス ライブラリの組織図:

Javaスイングとは何ですか?

#AbstmctButton クラスを除く Swing コンポーネントはすべて J で始まることがわかります。 Swing コンテナ コンポーネントは AWT クラス ライブラリのコンテナ コンポーネント クラスを直接継承し、他のほとんどのコンポーネントは JComponet コンポーネントを継承します。コンポーネントはコンテナ コンポーネントと非コンテナ コンポーネントに分けられ、コンテナ コンポーネントには JFmme と JDialog が含まれます。このうち、JComponent は非コンテナクラス (JBntton、JPanel、JMenu など) の軽量コンポーネントを定義します。

Swing パッケージ

Swing クラス ライブラリは多くのパッケージで構成されており、GUI の設計はこれらのパッケージ内のクラスによって完成します。その中で、javax.swing パッケージは Swing が提供する最大のパッケージであり、100 近くのクラスと 25 のインターフェイスが含まれています。ほぼすべての Swing コンポーネントがこのパッケージに含まれています。表 1 に、一般的に使用される Swing パッケージを示します。

#Swing 共通パッケージパッケージ名説明##javax.swingjavax.swing.border##javax.swing.event##Swing コンポーネントによってトリガーされるイベントを提供します ##javax.swing。 filechooser JFileChooser コンポーネントで使用されるクラスとインターフェイスを提供します javax.swing.table Javax を処理するためのクラスとインターフェイスを提供します。 Swing.JTable の
すべてのプラットフォームで同じように動作する一連の「軽量」コンポーネントを提供します
描画用のクラスとインターフェイスを提供しますSwing コンポーネントの周囲の特別な境界線
#javax.swing.text クラス HTMLEditorKit と、HTML テキスト エディターを作成するためのサポート クラスを提供します
javax.swing.tree javax.swingJTree
を処理するためのクラスとインターフェイスを提供します。

javax.swing.event パッケージは、イベントとイベント リスナー クラスを定義します。javax.swing.event パッケージは、AWT イベント パッケージに似ています。 Java.awt.event と javax.swing.event には、それぞれ AWT コンポーネントと Swing コンポーネントによってトリガーされたイベントに応答するイベント クラスとリスナー インターフェイスが含まれています。

たとえば、ツリー コンポーネントでノードの展開 (または縮小) の通知が必要な場合は、Swing の TreeExpansionListener インターフェイスを実装し、TreeExpansionEvent インスタンスを TreeExpansionListener インターフェイスで定義されたメソッドに渡す必要があります。また、TreeExpansionListener および TreeExpansionEventこれらはすべて、swing.event パッケージで定義されています。

Swing のテーブル コンポーネント (JTable) は javax.swing パッケージにありますが、そのサポート クラスは javax.swing.table パッケージにあります。テーブル モデル、グラフィックス描画クラス、およびエディターも javax.swing.table パッケージに含まれています。

JTable クラスと同様、Swing のツリー JTree (データを階層的に編成するために使用される構造コンポーネント) も javax.swing パッケージに含まれており、そのサポート クラスは javax.swing.tree パッケージに含まれています。 javax.swing.tree パッケージは、ツリー モデル、ツリー ノード、ツリー ユニット編集クラス、ツリー描画クラスなどのサポート クラスを提供します。

Swing コンテナ

グラフィカル ユーザー インターフェイス プログラム作成の最初のステップは、他のコンポーネントに対応するコンテナ クラスを作成することです。共通ウィンドウはコンテナです。コンテナ自体もコンポーネントであり、その役割は他のコンポーネントを整理、管理、表示することです。

Swing のコンテナは、トップレベル コンテナと中間コンテナの 2 つのカテゴリに分類できます。

トップレベル コンテナはグラフィック プログラミングの基礎です。すべてのグラフィカルなものはトップレベル コンテナに含める必要があります。トップレベルのコンテナは、グラフィカル インターフェイス プログラムに関係するメイン ウィンドウであり、コンポーネントを表示およびホストするコンテナ コンポーネントです。 Swing で使用できるトップレベルのコンテナーは、JFrame、JDialog、JApplet の 3 つです。

##● JFrame: 枠線、タイトル、ウィンドウを閉じたり最小化したりするためのアイコンを備えたフレーム ウィンドウに使用されるクラス。 GUI を備えたアプリケーションは、少なくとも 1 つのフレーム ウィンドウを使用します。

##● JDialog: ダイアログボックスに使用されるクラス。

##● JApplet: Swing コンポーネントを使用するための Java Applet クラス。

中間コンテナはコンテナ コンポーネントの一種であり、他のコンポーネントをホストすることもできますが、中間コンテナは独立して表示できないため、他の最上位コンテナにアタッチする必要があります。一般的な中間コンテナには、JPanel、JScrollPane、JTabbedPane、JToolBar などがあります。

# JPanel: 通常のパネルを表し、最も柔軟で一般的に使用される中間コンテナです。

##● JScrollPane: JPanel に似ていますが、大きなコンポーネントや展開可能なコンポーネントの周囲にスクロール バーを提供します。

##● JTabbedPane: 複数のコンポーネントを含めることができるタブ付きパネルを表しますが、一度に表示されるコンポーネントは 1 つだけです。ユーザーはコンポーネント間を簡単に切り替えることができます。

##● JToolBar: 行または列に配置された一連のコンポーネント (通常はボタン) であるツールバーを表します。

Java プログラムのコンテナ クラスはすべて Container クラスを継承します。図 (コンテナ クラスの組織図) に示すように、中間コンテナと最上位コンテナは、AWT パッケージと Swing パッケージのコンテナ クラスの継承関係を継承します。 ## 推奨される学習:

Java ビデオ チュートリアル

以上がJavaスイングとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート