swingコンポーネント->JPanel
パネルはコンポーネントを入れるための中間コンテナです。いくつかのコンポーネントをまとめてパネルに配置することでグループとして扱え、全体の配置をしやすくなります。また、通常のレイアウトだけだと複雑な画面構成ができませんが、パネルを使用することで可能になります。


コンストラクタ(抜粋)
JPanel()
 FlowLayoutのJPanelオブジェクトを生成します。
メソッド(抜粋)
void add(Component c)
 パネルにコンポーネントcを配置します。
void setLayout(LayoutManager l)
 レイアウト方式を設定します。
void remove(Component c)
 パネルからコンポーネントcを削除します。

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位置に配置しています。
もどる