Swing は、グラフィカル インターフェイス アプリケーション開発のために Java によって提供されるツールキットのセットであり、Java 基本クラスの一部です。
Swing には、ウィンドウ、ラベル、ボタン、テキスト ボックスなど、グラフィカル インターフェイス (GUI) を構築するためのさまざまなコンポーネントが含まれています。
Swing は、AWT よりも多くの優れた画面表示要素を提供しており、純粋な Java で実装されており、クロスプラットフォーム操作との互換性が高くなります。
AWT コンポーネントと区別するために、Swing コンポーネントは javax.swing.* パッケージの下にあり、そのクラス名はすべて J で始まります (JFrame、JLabel、JButton など)。
推奨コース: Java チュートリアル
Swing コンポーネント
Java グラフィカル インターフェイスは、さまざまな要素で構成されています。ウィンドウ、メニューバー、ダイアログボックス、ラベル、ボタン、テキストボックスなどの「要素」の種類で構成されます。これらの「要素」を総称してコンポーネントと呼びます。
コンポーネントは、さまざまな機能に応じて、最上位コンテナ、中間コンテナ、および基本コンポーネントに分類できます。単純なウィンドウの構成は次のとおりです。
トップレベルのコンテナ
メニュー バー
中間コンテナ
基本コンポーネント
基本コンポーネント
コンポーネントの種類の継承関係:
最上位コンテナはウィンドウ クラス コンポーネントに属し、java.awt.Window から継承します;
中間コンテナと基本コンポーネントは javax.swing.JComponent から継承します。
(1) 最上位コンテナ
最上位コンテナはウィンドウ コンポーネントであり、独立して表示できます。グラフィカル インターフェイスには、少なくとも 1 つのウィンドウが必要です。例:
|
#コンポーネント
|
説明
|
##1
| JFrame
| 通常のウィンドウ (ほとんどの Swing グラフィカル インターフェイス プログラムは、JFrame をトップレベル コンテナとして使用します)
|
2
| Jダイアログ
| ダイアログ
|
#(2)中間コンテナ
中間コンテナは基本コンポーネントのキャリアとして機能し、独立して表示することはできません。中間コンテナーは、コンテナー内のコンポーネントを管理するために、いくつかの基本コンポーネント (中間コンテナーはネストすることもできます) を追加できます。これは、さまざまな複雑なコンポーネントをグループ化して管理するのと似ています。最上位の中間コンテナは、最上位のコンテナ (ウィンドウ) 内でサポートされている必要があります。
一般的に使用される中間コンテナ (パネル):
コンポーネント |
説明 |
| ##1
JPanel
|
一般的な軽量パネル コンテナ コンポーネント
|
| 2
JScrollPane
|
水平方向および垂直方向にスクロールできるスクロール バーを備えたパネル コンポーネント
|
| 3
JSplitPane
|
分割パネル
|
##4 |
JTabbedPane
| タブ パネル
|
5 |
JLayeredPane
| 階層パネル
|
| #特別な中間コンテナ:
##コンポーネント
#説明 |
| 1
| JMenuBar
#メニュー バー
|
##2
|
JToolBar
|
ツールバー
|
3
|
JopupMenu
|
ポップアップ メニュー
|
4
|
JInternalFrame
|
内部ウィンドウ
|
(3) 基本コンポーネント
基本コンポーネントは、人間とコンピュータのインタラクションを直接実現するコンポーネントです。
一般的に使用される単純な基本コンポーネント:
|
コンポーネント
|
説明 |
1
|
Jラベル
|
ラベル
|
2
|
JButton
|
ボタン
|
3
|
JRadioButton |
ラジオ ボタン
|
4
|
JCheckBox
|
チェック ボックス |
5
|
JToggleButton
|
切り替えボタン
|
6
|
JTextField
|
テキスト ボックス
|
7
|
JPasswordField |
パスワードボックス
|
##8
| JTextArea
| テキストエリア
|
9
| JComboBox
| ドロップダウン リスト ボックス
|
10
| JList
| リスト
|
11
| JProgressBar
| # #進行状況バー
|
##12
Jスライダー |
#スライダー
|
|
セレクターコンポーネント:
コンポーネント
|
説明
|
| 1
JFileChooser
|
ファイル ピッカー
|
| 2
JColorChooser
|
カラー ピッカー
|
|
その他のより複雑な基本コンポーネント:
#コンポーネント
|
説明
|
##1 |
JTable
| テーブル
|
2 |
J ツリー
| ツリー# ##############################3. レイアウト マネージャー
パネル コンテナー (JPanel) にさまざまな Swing コンポーネント (JComponent) を追加するには、パネル コンテナーのレイアウト マネージャー (LayoutManager) を指定し、コンテナーのコンテンツを指定する必要があります。 (コンテナ) さまざまなコンポーネントの配置とレイアウト。
一般的に使用されるレイアウト マネージャー:
|
レイアウト マネージャー
|
説明 |
1
|
FlowLayout
|
コンポーネントを追加した順に横方向に並べたフローレイアウト。 1つの列がいっぱいになったら、次の列に変更して配置を続けます。
|
2
|
GridLayout
|
グリッド レイアウト。指定された数に従ってコンテナを複数のグリッドに分割します。行と列、各グリッドにコントロールが順番に配置されます。
|
3 |
GridBagLayout |
グリッドバッグレイアウト、グリッドに従ってコンテナを分割し、各コンポーネントは1つを占有することができます複数のグリッドを使用すると、コンポーネントを垂直方向、水平方向、またはベースラインに沿って配置できます。 |
4 |
##BoxLayout
|
ボックス レイアウト。コンテナ内の複数のコンポーネントを水平方向または垂直方向に配置します。 。
|
5
|
GroupLayout
|
グループ レイアウト、コンポーネントを階層的に (シリアルまたはパラレルで) グループ化し、位置を決定します。コンポーネントグループの水平方向と垂直方向のそれぞれ。
|
6
| #CardLayout
| カード レイアウト。コンテナ内の各コンポーネントをカードとして扱います。カードは 1 枚のみです。は一度に表示でき、デフォルトでは最初のカードが表示されます。
|
7
##BorderLayout |
ボーダー レイアウトは、コンテナを方向 (東、西) に応じて 5 つのエリアに分割します。 、南、北、中央)、各エリアに 1 つのコンポーネントを配置します。 |
|
8
SpringLayout |
フレキシブル レイアウトは、オブジェクトの 4 辺の座標位置を定義することでレイアウトを実装します。成分。 |
| #9
##null
| 絶対レイアウト。 Container 内の座標位置を設定してコンポーネントを配置します。
|
| 4. コード例: 単純なウィンドウ プログラム
package com.xiets.swing;import javax.swing.*;public class Main {
public static void main(String[] args) { // 1. 创建一个顶层容器(窗口)
JFrame jf = new JFrame("测试窗口"); // 创建窗口
jf.setSize(250, 250); // 设置窗口大小
jf.setLocationRelativeTo(null); // 把窗口位置设置到屏幕中心
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 当点击窗口的关闭按钮时退出程序(没有这一句,程序不会退出)
// 2. 创建中间容器(面板容器)
JPanel panel = new JPanel(); // 创建面板容器,使用默认的布局管理器
// 3. 创建一个基本组件(按钮),并添加到 面板容器 中
JButton btn = new JButton("测试按钮");
panel.add(btn); // 4. 把 面板容器 作为窗口的内容面板 设置到 窗口
jf.setContentPane(panel); // 5. 显示窗口,前面创建的信息都在内存中,通过 jf.setVisible(true) 把内存中的窗口显示在屏幕上。
jf.setVisible(true);
}
}
結果表示:
|
以上がスイングコンポーネントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。