Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java Swingでメインパネルに複数のサブパネルを追加する方法

JPanelJComponentクラスのサブクラスであり、Javaでは不可視(透明)コンポーネントとして扱われます。JPanelのデフォルトのレイアウトマネージャーはFlowLayoutです。JPanelには、ボタン、テキストフィールド、ラベル、テーブル、リスト、ツリーなど、ほとんどのSwingコンポーネントを自由に追加できます。

さらに、Containerクラスが提供するadd()メソッドを使用することで、メインパネルに複数のサブパネルを追加することも可能です。この仕組みを活用すれば、複雑なUIレイアウトを階層的かつ柔軟に構築できます。

構文

public Component add(Component comp)

コード例

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

public class MultiPanelTest extends JFrame {
    private JPanel mainPanel, subPanel1, subPanel2;
    public MultiPanelTest() {
        setTitle("MultiPanel Test");
        // メインパネルの作成
        mainPanel = new JPanel();
        mainPanel.setLayout(new GridLayout(3, 1)); // 3行1列のグリッドレイアウト
        mainPanel.add(new JLabel("Main Panel", SwingConstants.CENTER));
        mainPanel.setBackground(Color.white);
        mainPanel.setBorder(BorderFactory.createLineBorder(Color.black, 1));
        // サブパネル1の作成
        subPanel1 = new JPanel();
        subPanel1.add(new JLabel("Panel One", SwingConstants.CENTER));
        subPanel1.setBackground(Color.red);
        // サブパネル2の作成
        subPanel2 = new JPanel();
        subPanel2.setBackground(Color.blue);
        subPanel2.add(new JLabel("Panel Two", SwingConstants.CENTER));
        // サブパネルをメインパネルに追加
        mainPanel.add(subPanel1);
        mainPanel.add(subPanel2);
        add(mainPanel);
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }
    public static void main(String[] args) {
        new MultiPanelTest();
    }
}

実行結果

上記のコードを実行すると、白い背景を持つメインパネルの中に、赤色の「Panel One」と青色の「Panel Two」という2つのサブパネルが縦方向に順番に配置されて表示されます。

Java Swingでメインパネルに複数のサブパネルを追加する方法

ポイント解説

  • setLayout(new GridLayout(3, 1)):メインパネルに3行1列のグリッドレイアウトを設定し、コンポーネントを縦に整列させています。
  • mainPanel.add(subPanel1):Containerクラスのadd()メソッドを呼び出すことで、作成済みのサブパネルをメインパネルへ登録します。
  • setBorder(BorderFactory.createLineBorder(...)):パネルに境界線を設定することで、パネルの範囲が視覚的に分かりやすくなります。

このように、パネルを入れ子にする構造(ネスト)を使えば、画面を論理的な単位ごとに分割して管理でき、保守性の高いGUIアプリケーションを効率的に開発できます。

  1. 【Java入門】JScrollPaneでスクロール可能なJPanelを実装する方法

    JPanelとはJPanelはSwingで最もよく使われるコンテナの一つです。まずは基本的な特徴を確認しておきましょう。JPanelはJComponentのサブクラスであり、JComponentはContainerクラスのサブクラスです。したがって、JPanel自体もContainer(コンテナ)として扱えます。JPanelは、他のコンポーネントやパネルを配置するための「空の領域」として利用できます。テキストフィールド、ラベル、ボタン、チェックボックス、画像など、さまざまなコンポーネントを自由に追加できます。FlowLayout、GridLayout、BorderLayoutなどのレイアウトマ

  2. Javaでログインフォームを作成する方法!Swingを使った実装例とサンプルコード

    JavaではSwingというGUIツールキットを利用することで、デスクトップアプリケーション向けのログインフォームを簡単に開発できます。この記事では、ユーザー名(User Name)とパスワード(Password)の2つのラベル、認証情報を入力するための2つのテキストフィールド、そしてSUBMIT(送信)ボタンを1つ備えたフォームを作成します。正しい認証情報が入力されると、フォーム上に「Hello admin」というメッセージが表示されます。 使用する主なコンポーネント JLabel:ラベルの表示に使用します。 JTextField:ユーザー名の入力欄です。 JPasswordField: