■swingコンポーネント->JPanel | ||||
パネルはコンポーネントを入れるための中間コンテナです。いくつかのコンポーネントをまとめてパネルに配置することでグループとして扱え、全体の配置をしやすくなります。また、通常のレイアウトだけだと複雑な画面構成ができませんが、パネルを使用することで可能になります。 | ||||
|
||||
コンストラクタ(抜粋) | ||||
|
||||
メソッド(抜粋) | ||||
|
||||
PanelSample1.java | ||||
import java.awt.*; | ||||
import java.awt.event.*; | ||||
public class PanelSample1 extends Frame { | ||||
static final int NUM = 6; | ← @変数NUMを定数として宣言 | |||
Button[] bun1 = new Button[NUM]; | ← Abtn1を配列で宣言 | |||
Button btn2 = new Button("btn2"); | ||||
Button btn3 = new Button("btn3"); | ||||
Panel pnl = new Panel(); | ← Bパネルのインスタンス生成 | |||
public PanelSample1() { | ||||
super(PanelSample1); | ||||
addWindowAdapter(new WindowListener() { | ||||
public void windowClosing(WindowEvent e) { | ||||
System.exit(0); | ||||
} | ||||
}); | ||||
setSize(400,300); | ||||
setLocation(100,100); | ||||
setLayout(new BorderLayout()); | ← Cウィンドウをボーダーレイアウトに設定 | |||
pnl.setLayout(new GridLayout(2,3)); | ← Dパネルをグリッドレイアウトに設定 | |||
for(int i=0; i<NUM; i++){ | ||||
btn1[i] = new Button("btn1_"+i); | ← Ebtn1のインスタンス生成 | |||
pnl.add(btn1[i]); | ← Fbtn1[i]をパネルに配置 | |||
} | ||||
add(pnl,"Center"); | ← Gパネルをウインドウに配置 | |||
add(btn2,"North"); | ||||
add(btn3,"East"); | ||||
setVisible(true); | ||||
} | ||||
public static void main(String[] args) { | ||||
PanelSample1 myClass = new PanelSample1(); | ||||
} | ||||
} | ||||
@static final
int NUM = 6; NUMを定数として定義しています。このときの値は6です。 |
||||
A
Button[] bun1 = new Button[NUM]; パネルに乗せるボタンを配列で用意しています。 (※パネルに乗せないボタンを区別するために配列を使いました。) |
||||
BPanel pnl =
new Panel(); パネルのインスタンスを生成。 |
||||
CsetLayout(new
BorderLayout()); ウィンドウのレイアウトをBorderLayoutに設定しています。 |
||||
Dpnl.setLayout(new
GridLayout(2,3)); パネルのレイアウトをGridLayoutに設定しています。 |
||||
Ebtn1[i]
= new Button("btn1_"+i); btn1[i]のインスタンスを生成。 今回はfor文の中で処理しています。 |
||||
Fpnl.add(btn1[i]); pnlにbtn1[i]を配置しています。 for文を使うことにより、EFを一回の記述にしています。 |
||||
Gadd(pnl,"Center"); btn1を乗せたpnlをウィンドウのCenter位置に配置しています。 |
||||
もどる |