複数のJPanelの配置

中間コンテナは一つのトップレベルコンテナ上に複数追加することができます。
つまりJFrame上にJPanelを二つ配置することができるのです。
つまり一つ目のJPanelにはフローレイアウトで配置し二つ目にはボーダーレイアウトで配置することができます。
このように中間コンテナの組み合わせによって複雑なレイアウトができるようになります。
ではプログラムを確認したいと思います。

サンプルプログラム(GUISwing23.java)

import java.awt.*;
import javax.swing.*;

class GUI23 extends JPanel{

    JButton jb1;

    GUI23(){
    //ボタンの作成
    jb1 = new JButton("Hello");

    //レイアウトの指定
    setLayout(new BorderLayout());
    //JPanelの配置

    add(jb1,BorderLayout.CENTER);

     }
}
class GUI23_1 extends JPanel{

    JButton jb2;

    GUI23_1(){
    //ボタンの作成
    jb2 = new JButton("Java");

    //レイアウトの指定
    setLayout(new BorderLayout());
    //JPanelの配置

    add(jb2,BorderLayout.CENTER);

     }
}

public class GUISwing23{
    public static void main(String args[]){

    GUI23 jb_app = new GUI23();
	GUI23_1 jb_app1 = new GUI23_1();
    
     JFrame jf = new JFrame("JButton");
     
     Container c = jf.getContentPane();
	 
     c.add(jb_app,BorderLayout.NORTH);
	 c.add(jb_app1,BorderLayout.SOUTH);
    
 jf.setSize(200, 200);

     jf.setVisible(true);
 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
}
	

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行すると以下のようになります。

今回のプログラムはJPanelを二つ継承したクラスを作成しました。
GUI23クラスとGUI23_1クラスです。
GUI23にはc.add(jb_app,BorderLayout.NORTH);でJPanelを北側に配置しています。
GUI23_1にはc.add(jb_app1,BorderLayout.SOUTH);でJPanelを南側に配置しています。
このように複数配置できるのです。

ページのトップへ戻る