パネルの作成

広告
facebookボタン
googleplusボタン
twitterボタン
ダミーボタン
bloggerボタン

パネルを作成するにはJPanelクラスを使用します。JPanelクラスは次のように定義されています。

public class JPanel
extends JComponent implements Accessible
java.lang.Object
 L java.awt.Component
     L java.awt.Container
         L javax.swing.JComponent
             L javax.swing.JPanel

パネルはコンポーネントの親クラスであるJComponentクラスのサブクラスとなっています。

JPanelクラスのオブジェクトを作成

JPanelクラスをを利用するにはコンストラクタを使ってJPanelクラスのオブジェクトを作成します。どのようなコンストラクタが用意されているか確認してみます。

コンストラクタの概要
JPanel()
ダブルバッファーおよびフローレイアウトで新しい JPanel を作成します。
JPanel(boolean isDoubleBuffered)
FlowLayout および指定されたバッファリング方式で新しい JPanel を作成します。
JPanel(LayoutManager layout)
指定されたレイアウトマネージャーで、新しい JPanel を作成します。
JPanel(LayoutManager layout, boolean isDoubleBuffered)
指定されたレイアウトマネージャーおよびバッファリング方式で新しい JPanel を作成します。

主に使用するのは1番目のコンストラクタです。次のように定義されています。

JPanel
public JPanel()
ダブルバッファーおよびフローレイアウトで新しい JPanel を作成します。

JPanelのデフォルトのレイアウトマネージャーであるFlowLayoutが設定されたパネルが作成されます。

実際の使い方は次のようになります。

JPanel panel = new JPanel();

フレームにパネルを追加

パネルもコンポーネントの一つですのでフレームに追加することができます。(詳細は「フレームに含まれるペインとコンポーネントの追加」を参照して下さい)。

実際の使い方は次のようになります。

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Container;
import java.awt.BorderLayout;

class Sample extends JFrame{
  public static void main(String args[]){
    /* ... */
  }

  Sample(String title){
    /* ... */

    JPanel panel = new JPanel();

    Container contentPane = getContentPane();
    contentPane.add(panel, BorderLayout.CENTER);
  }
}

上記ではパネルを1つ作成しフレームに追加しています。

サンプルプログラム

では実際に試してみます。

SSample1_1.java

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.Color;

class SSample1_1 extends JFrame{
  public static void main(String args[]){
    SSample1_1 frame = new SSample1_1("タイトル");
    frame.setVisible(true);
  }

  SSample1_1(String title){
    setTitle(title);
    setBounds(100, 100, 300, 250);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel p1 = new JPanel();
    p1.setBackground(Color.BLUE);

    JPanel p2 = new JPanel();
    p2.setBackground(Color.ORANGE);

    Container contentPane = getContentPane();
    contentPane.add(p1, BorderLayout.NORTH);
    contentPane.add(p2, BorderLayout.SOUTH);
  }
}

ではコンパイルを行った上で実行してみます。

p1-1

今回は2つのパネルを作成し、それぞれ別の背景色を設定した上でフレームに追加しています。

( Written by T.buzz.Ikura+ )

Facebook Page