Javaのお勉強



パネル(JPanel)を配置@Java

JPanelを配置します。
パネルには、コンポーネントを配置することができますので、
より細かなレイアウトの作成が行えます。

JFrameを継承したクラスを作成します。
コンストラクタにて、フレームの初期化を行います。

パネル(JPanel)を生成します。
以下では、2つパネルを生成しています。

1つ目のパネルを生成します。
レイアウトをBorderLayoutにします。
ボタンを生成し、パネルのBorderLayout.CENTERに配置します。

2つ目のパネルを生成します。
レイアウトをBorderLayoutにします。
ラベルを2つ生成し、パネルのBorderLayout.NORTHBorderLayout.SOUTHに
それぞれ配置を行います。

ContainerにJPanelを2つ配置します。
フレームの設定を行います。
レイアウトは、GridLayoutとして行1、列2とします。

クラスのmainメソッドで、
作成したクラスを生成して実行します


import javax.swing.*;

public class Main extends JFrame {

    private JPanel panel1;
    private JPanel panel2;

    private JButton btn;
    private JLabel lbl1;
    private JLabel lbl2;

    //コンストラクタ
    public Main() {

        //パネル1生成
        //javax.swing.JPanel
        panel1 = new javax.swing.JPanel();

        //レイアウトをBorderLayoutに設定
        panel1.setLayout(new java.awt.BorderLayout());

        //ボタンを生成
        btn = new JButton();
        btn.setText("ボタン");

        //パネル1にボタンを中心に配置
        panel1.add(btn,java.awt.BorderLayout.CENTER);

        //パネル2生成
        panel2 = new JPanel();

        //レイアウトをBorderLayoutに設定
        panel2.setLayout(new java.awt.BorderLayout());

        //ラベル生成
        lbl1 = new JLabel();
        lbl1.setText("ラベル1");
        lbl2 = new JLabel();
        lbl2.setText("ラベル2");

        //パネル2にラベルを上と下に配置
        panel2.add(lbl1,java.awt.BorderLayout.NORTH);
        panel2.add(lbl2,java.awt.BorderLayout.SOUTH);

        //コンテナーに配置
        getContentPane().add(panel1);
        getContentPane().add(panel2);

        //フレーム設定
        //レイアウトをGridLayoutに設定(行:1、列2)
        getContentPane().setLayout(new java.awt.GridLayout(1,2));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("パネル");
        setSize(300, 200);
    }

    public static void main(String[] args) {
        //非同期処理
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Main().setVisible(true);
            }
        });
    }
}




Copyright (C) 2008-2026 Javaのお勉強. All Rights Reserved.