スイング は Java Foundation Classes [JFC] ライブラリであり、Abstract Window Toolkit [AWT] の拡張機能です。 Java Swing は、AWT よりも大幅に改善された機能、新しいコンポーネント、拡張されたコンポーネント機能、およびドラッグ アンド ドロップ サポートによる優れたイベント処理を提供します。
Java Swing の紹介
Swing には AWT の約 4 倍のユーザー インターフェイス (UI) コンポーネントがあり、標準の Java ディストリビューションの一部です。今日のアプリケーションの GUI 要件からすると、AWT は限定された実装であり、最新の商用アプリケーションで必要とされる複雑な GUI の開発に必要なコンポーネントを提供する能力は十分ではありません。 AWT コンポーネント セットにはかなりの数のバグがあり、同等の Swing リソースと比較すると多くのシステム リソースを消費します。 Netscape は、Java で使用する Internet Foundation Classes [IFC] ライブラリを導入しました。そのクラスは、商用アプリケーション用の GUI を作成するプログラマーの間で非常に人気になりました。
- Swing は API のセット (API - クラスとインターフェイスのセット)
- Swing はグラフィカル ユーザー インターフェイスを設計するために提供されています
- Swing は AWT (Abstract Window Toolkit) の拡張ライブラリです 午後 5:00 – 5:30
- GUI の外観と機能を強化する、新しく改良されたコンポーネントが含まれています。
- Swing を使用して、スタンドアロンの Swing GUI アプリをサーブレットおよびアプレットとして構築 (開発) できます。
- モデル/ビュー設計アーキテクチャを採用しています。
- Swing は AWT よりも移植性と柔軟性が高く、Swing は AWT の上に構築されています。
- Swing はすべて Java で書かれています。
- Java Swing コンポーネントはプラットフォームに依存せず、軽量です。
- Swing はプラグイン可能なルック アンド フィールをサポートし、Swing はより強力なコンポーネントを提供します。
- テーブル、リスト、スクロールペイン、カラーチューザー、タブ付きペインなど。
- さらなるスイングはMVCに続きます。
Java Swing と Java AWT の違い
以下に示すように、Java Swing が Java AWT と異なる点がいくつかあります。
| Java AWT | ジャワ・スイング Javaのリストとセット |
|---|---|
| Java AWT は、Java で GUI アプリケーションを開発するための API です。 | Swing は Java Foundation Classes の一部であり、さまざまなアプリケーションの作成に使用されます。 |
| AWT のコンポーネントは非常に重いです。 | Java Swing のコンポーネントは軽量です。 |
| コンポーネントはプラットフォームに依存します。 | コンポーネントはプラットフォームに依存しません。 |
| 実行時間は Swing よりも長くなります。 | 実行時間はAWTよりも短くなります。 |
| AWT コンポーネントには java.awt パッケージが必要です。 | Swing コンポーネントには javax.swing パッケージが必要です。 |
このトピックについて詳しくは、以下を参照してください。 Java Swing と Java AWT の比較 。
JFCとは何ですか?
JFC は Java Foundation Classes の略です。 JFC は、デスクトップ アプリケーションを簡素化する GUI コンポーネントのセットです。多くのプログラマは、JFC と Swing は同じものだと考えていますが、そうではありません。 JFC には、Swing [UI コンポーネント パッケージ] とその他の非常に多くの項目が含まれています。
- カットアンドペースト: クリップボードのサポート。
- アクセシビリティ機能: 障害のあるユーザー向けの GUI の開発を目的としています。
- デスクトップ カラー機能は Java 1.1 で初めて導入されました。
- Java 2D: 色、画像、テキストのサポートが改善されました。
スイングクラスの特徴
- プラグイン可能なルック アンド フィール。
- MVC アーキテクチャを使用します。
- 軽量コンポーネント
- プラットフォームに依存しない
- JTable、JTabbedPane、JScollPane などの高度な機能。
- Java はプラットフォームに依存しない言語であり、あらゆるクライアント マシン上で実行されます。GUI のルック アンド フィールは、プラットフォーム固有の O/S によって所有および提供され、Swing コンポーネントを使用して構築されたアプリケーションの GUI にはまったく影響しません。
- 軽量コンポーネント: JDK 1.1 からは、AWT をサポートする軽量コンポーネントの開発が開始されます。コンポーネントが軽量であると認定されるには、非 Java (O/s ベース) システム クラスに依存してはなりません。 Swing コンポーネントには、Java の Look & Feel クラスによってサポートされる独自のビューがあります。
- プラグイン可能なルック アンド フィール: この機能を使用すると、ユーザーはアプリケーションを再起動せずに、Swing コンポーネントのルック アンド フィールを切り替えることができます。 Swing ライブラリは、プログラムがどこで実行されても、すべてのプラットフォームで同じままのコンポーネントのルック アンド フィールをサポートします。 Swing ライブラリは、アプリケーションの GUI のルック アンド フィールを決定する際に真の柔軟性を与える API を提供します。
- 高度にカスタマイズ可能 – スイング コントロールは、外観が内部表現から独立しているため、非常に簡単な方法でカスタマイズできます。
- 豊富なコントロール – Swing は、Tree TabbedPane、スライダー、カラーピッカー、テーブル コントロールなどの高度なコントロールの豊富なセットを提供します。
Swing クラスの階層

MVC 接続
- 一般に、ビジュアル コンポーネントは次の要素を組み合わせたものです。 3 つの異なる側面:
- 画面上にレンダリングされたときのコンポーネントの外観。
- コンポーネントがユーザーに反応する方法。
- コンポーネントに関連付けられた状態情報。
- 長年にわたり、1 つのコンポーネント アーキテクチャが非常に効果的であることが証明されています。 モデル-ビュー-コントローラー または MVC 略して。
- MVC 用語では、 モデル コンポーネントに関連付けられた状態情報に対応します。
- の ビュー モデルの現在の状態によって影響を受けるビューの側面を含め、コンポーネントが画面上でどのように表示されるかを決定します。
- の コントローラ コンポーネントがユーザーにどのように反応するかを決定します。
最も単純な Swing コンポーネントには、次のような AWT コンポーネントをはるかに超える機能があります。
- スイング ボタンとラベルには、テキストの代わりに、またはテキストに加えて画像を表示できます。
- ほとんどの Swing コンポーネントの周囲の境界線は簡単に変更できます。たとえば、Swing ラベルの外側に 1 ピクセルの境界線を付けるのは簡単です。
- スイング コンポーネントは長方形である必要はありません。たとえば、ボタンは丸いものにすることができます。
- スクリーン リーダーなどの最新のアサーティブ テクノロジにより、Swing コンポーネントから情報を簡単に取得できるようになりました。例: スクリーン リーダー ツールは、Swing ボタンまたはラベルに表示されるテキストを簡単にキャプチャできます。
Java Swing プログラムの例
例 1: ラベル (swing) を使用してメッセージを表示するプログラムを開発します。 GFG WEB サイト クリック:
ジャワ
YouTube VLCメディアプレーヤーをダウンロード
// Java program using label (swing)> // to display the message GFG WEB Site Click> import> java.io.*;> import> javax.swing.*;> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating instance of JFrame> >JFrame frame =>new> JFrame();> >// Creating instance of JButton> >JButton button =>new> JButton(>' GFG WebSite Click'>);> >// x axis, y axis, width, height> >button.setBounds(>150>,>200>,>220>,>50>);> >// adding button in JFrame> >frame.add(button);> >// 400 width and 500 height> >frame.setSize(>500>,>600>);> >// using no layout managers> >frame.setLayout(>null>);> >// making the frame visible> >frame.setVisible(>true>);> >}> }> |
>
>
出力:

例 2: OK、SUBMIT、CANCEL というキャプションを持つ 3 つのボタンを作成するプログラムを作成します。
ジャワ
// Java program to create three buttons> // with caption OK, SUBMIT, CANCEL> import> java.awt.*;> class> button {> >button()> >{> >Frame f =>new> Frame();> >// Button 1 created> >// OK button> >Button b1 =>new> Button(>'OK'>);> >b1.setBounds(>100>,>50>,>50>,>50>);> >f.add(b1);> >// Button 2 created> >// Submit button> >Button b2 =>new> Button(>'SUBMIT'>);> >b2.setBounds(>100>,>101>,>50>,>50>);> >f.add(b2);> > >// Button 3 created> >// Cancel button> >Button b3 =>new> Button(>'CANCEL'>);> >b3.setBounds(>100>,>150>,>80>,>50>);> >f.add(b3);> >f.setSize(>500>,>500>);> >f.setLayout(>null>);> >f.setVisible(>true>);> >}> >public> static> void> main(String a[]) {>new> button(); }> }> |
挿入ソートアルゴリズム
>
JavaScriptの部分文字列のトリム
>
出力:

例3: フレーム内にチェックボックスを追加するプログラム
ジャワ
// Java Swing Program to Add Checkbox> // in the Frame> import> java.awt.*;> // Driver Class> class> Lan {> >// Main Function> >Lan()> >{> >// Frame Created> >Frame f =>new> Frame();> >Label l1 =>new> Label(>'Select known Languages'>);> >l1.setBounds(>100>,>50>,>120>,>80>);> >f.add(l1);> >// CheckBox created> >Checkbox c2 =>new> Checkbox(>'Hindi'>);> >c2.setBounds(>100>,>150>,>50>,>50>);> >f.add(c2);> >// CheckBox created> >Checkbox c3 =>new> Checkbox(>'English'>);> >c3.setBounds(>100>,>200>,>80>,>50>);> >f.add(c3);> >// CheckBox created> >Checkbox c4 =>new> Checkbox(>'marathi'>);> >c4.setBounds(>100>,>250>,>80>,>50>);> >f.add(c4);> >f.setSize(>500>,>500>);> >f.setLayout(>null>);> >f.setVisible(>true>);> >}> >public> static> void> main(String ar[]) {>new> Lan(); }> }> |
>
>
出力:

Swing クラスのコンポーネント、タスクの割合
| クラス | 説明 |
|---|---|
| 成分 | コンポーネントは、Java SWING の非メニュー ユーザー インターフェイス コントロールに関する抽象基本クラスです。コンポーネントは、オブジェクトをグラフィック表現で表します。 |
| 容器 | コンテナは、Java SWING コンポーネントをコンテナ化できるコンポーネントです。 |
| Jコンポーネント | JComponent は、すべての Swing UI コンポーネントの基本クラスです。 JComponent を継承する Swing コンポーネントを使用するには、そのコンポーネントが、ルートが最上位の Java Swing コンテナである包含階層内に存在する必要があります。 |
| Jラベル | JLabel は、コンテナ内にテキストを配置するためのオブジェクト コンポーネントです。 |
| Jボタン | このクラスはラベル付きボタンを作成します。 |
| JColorChooser | JColorChooser は、ユーザーが色の操作と選択をできるように設計されたコントロールのペインを提供します。 |
| Jチェックボックス | JCheckBox は、オン (true) またはオフ (false) 状態のいずれかになるグラフィカル (GUI) コンポーネントです。 |
| Jラジオボタン | JRadioButton クラスは、オン (true) またはオフ (false) 状態のいずれかのグラフィック (GUI) コンポーネントです。グループの中で |
| Jリスト | JList コンポーネントは、テキスト項目のスクロール リストでユーザーを表します。 |
| Jコンボボックス | JComboBox コンポーネントは、選択肢の表示メニューをユーザーに提示します。 |
| Jテキストフィールド | JTextField オブジェクトは、単一行のテキストの編集を可能にするテキスト コンポーネントです。 |
| JPパスワードフィールド | JPasswordField オブジェクトは、パスワード入力に特化したテキスト コンポーネントです。 |
| JTextArea | JTextArea オブジェクトは、複数行のテキストの編集を可能にするテキスト コンポーネントです。 |
| イメージルコン | ImageIcon コントロールは、画像からアイコンを描画する Icon インターフェイスの実装です。 |
| Jスクロールバー | JScrollbar コントロールは、ユーザーが範囲値から選択できるようにするためのスクロール バー コンポーネントを表します。 |
| Jオプションペイン | JOptionPane は、ユーザーに値または何かの入力を求める標準ダイアログ ボックスのセットを提供します。 |
| JFileChooser | それが制御する JFileChooser は、ユーザーがファイルを選択できるダイアログ ウィンドウを表します。 |
| Jプログレスバー | タスクが完了に向けて進むにつれて、進行状況バーにタスクの完了率が表示されます。 |
| Jスライド | このクラスの JSlider は、制限された間隔内でノブをスライドさせることにより、ユーザーが値を使用してグラフィカル (GUI) で選択できるようにします。 |
| Jスピナー | このクラスの JSpinner は 1 行の入力であり、ユーザーは、順序付けられたシーケンスから数値またはオブジェクト値を使用して選択できるフィールドを使用します。 |