Java Swing チュートリアルは、ウィンドウベースのアプリケーションを作成するための Java Foundation Classes (JFC) の一部です。これは AWT (Abstract Windowing Toolkit) API に基づいており、すべて Java で書かれています。
AWT とは異なり、Java Swing はプラットフォームに依存しない軽量のコンポーネントを提供します。
javax.swing パッケージは、JButton、JTextField、JTextArea、JRadioButton、JCheckbox、JMenu、JColorChooser などの Java Swing API のクラスを提供します。
AWTとスイングの違い
Java AWT と Swing の間には、以下に示すように多くの違いがあります。
いいえ。 | Java AWT | ジャワ・スイング |
1) |
AWT コンポーネントはプラットフォームに依存します。 |
Java Swing コンポーネントはプラットフォームに依存しません。 |
2) |
AWT コンポーネントは重量級です。 |
スイングコンポーネントは軽量です。 |
3) |
AWT はプラグ可能なルック アンド フィールをサポートしていません。 |
Swing はプラグイン可能なルック アンド フィールをサポートしています。 |
4) |
AWT が提供するコンポーネントは Swing よりも少ないです。 |
Swing は、テーブル、リスト、スクロール パネル、カラー ピッカー、タブ パネルなどのより強力なコンポーネントを提供します。 |
5) |
AWT は、モデルがデータを表し、ビューがプレゼンテーションを表し、コントローラーがモデルとビューの間のインターフェイスとして機能する MVC (モデル ビュー コントローラー) に従いません。 |
Swing は MVC に従います。 |
#日本政策金融公庫とは
Java Foundation Classes (JFC) は、デスクトップ アプリケーションの開発を簡素化する GUI コンポーネントのセットです。
# Java Swing クラスの階層
Java Swing API の階層を以下に示します。
# Componentクラスの共通メソッド
Java Swing では、次のように Component クラスのメソッドが広く使われています。
方法 | 説明 |
public void add(コンポーネント c) |
コンポーネントを別のコンポーネントの上に追加します。 |
public void setSize(int width,int height) |
コンポーネントのサイズを設定します。 |
public void setLayout(LayoutManager m) |
コンポーネントのレイアウトマネージャーを設定します。 |
public void setVisible(boolean b) |
コンポーネントの可視性を設定します。デフォルトでは False です。 |
# Java Swing の例
フレームを作成するには 2 つの方法があります:
-
Frameクラスのオブジェクト(アソシエーション)を作成することで
-
Frameクラスを拡張(継承)することで
Swing コードは main()、コンストラクター、またはその他のメソッドで記述できます。
# 単純な Java Swing の例
以下は、main() メソッドでボタンを作成し、それを JFrame オブジェクトに追加する簡単な Swing の例です。
ファイル: FirstSwingExample.java
import javax.swing.*;
public class FirstSwingExample {
public static void main(String[] args) {
JFrame f=new JFrame();//创建JFrame的实例
JButton b=new JButton("click");//创建JButton实例
b.setBounds(130,100,100, 40);//x轴,y轴,宽,高
f.add(b);//在JFrame中添加按钮
f.setSize(400,500);//400宽500高
f.setLayout(null);//不使用布局管理器
f.setVisible(true);//使框架可见
}
}
}
# コンストラクターを介して関連付け内に Swing を記述する例
JFrame、JButton、およびメソッド呼び出しを作成するすべてのコードを Java コンストラクターで記述することもできます。
ファイル: Simple.java
import javax.swing.*;
public class Simple {
JFrame f;
Simple(){
f=new JFrame();//creating instance of JFrame
JButton b=new JButton("click");//creating instance of JButton
b.setBounds(130,100,100, 40);
f.add(b);//adding button in JFrame
f.setSize(400,500);//400 width and 500 height
f.setLayout(null);//using no layout managers
f.setVisible(true);//making the frame visible
}
public static void main(String[] args) {
new Simple();
}
}
上記の例では、ボタンの位置を設定する setBounds(int xaxis, int yaxis, int width, int height) メソッドを使用しています。
# 継承による Swing の実装の簡単な例
JFrame クラスから継承することもできるため、JFrame クラスのインスタンスを明示的に作成する必要はありません。
ファイル: Simple2.java
import javax.swing.*;
public class Simple2 extends JFrame{//inheriting JFrame
JFrame f;
Simple2(){
JButton b=new JButton("click");//create button
b.setBounds(130,100,100, 40);
add(b);//adding button on frame
setSize(400,500);
setLayout(null);
setVisible(true);
}
public static void main(String[] args) {
new Simple2();
}}