Java Swingでメインパネルに複数のサブパネルを追加する方法
JPanelはJComponentクラスのサブクラスであり、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つのサブパネルが縦方向に順番に配置されて表示されます。

ポイント解説
- setLayout(new GridLayout(3, 1)):メインパネルに3行1列のグリッドレイアウトを設定し、コンポーネントを縦に整列させています。
- mainPanel.add(subPanel1):Containerクラスのadd()メソッドを呼び出すことで、作成済みのサブパネルをメインパネルへ登録します。
- setBorder(BorderFactory.createLineBorder(...)):パネルに境界線を設定することで、パネルの範囲が視覚的に分かりやすくなります。
このように、パネルを入れ子にする構造(ネスト)を使えば、画面を論理的な単位ごとに分割して管理でき、保守性の高いGUIアプリケーションを効率的に開発できます。
-
【Java入門】JScrollPaneでスクロール可能なJPanelを実装する方法
JPanelとはJPanelはSwingで最もよく使われるコンテナの一つです。まずは基本的な特徴を確認しておきましょう。JPanelはJComponentのサブクラスであり、JComponentはContainerクラスのサブクラスです。したがって、JPanel自体もContainer(コンテナ)として扱えます。JPanelは、他のコンポーネントやパネルを配置するための「空の領域」として利用できます。テキストフィールド、ラベル、ボタン、チェックボックス、画像など、さまざまなコンポーネントを自由に追加できます。FlowLayout、GridLayout、BorderLayoutなどのレイアウトマ
-
Javaでログインフォームを作成する方法!Swingを使った実装例とサンプルコード
JavaではSwingというGUIツールキットを利用することで、デスクトップアプリケーション向けのログインフォームを簡単に開発できます。この記事では、ユーザー名(User Name)とパスワード(Password)の2つのラベル、認証情報を入力するための2つのテキストフィールド、そしてSUBMIT(送信)ボタンを1つ備えたフォームを作成します。正しい認証情報が入力されると、フォーム上に「Hello admin」というメッセージが表示されます。 使用する主なコンポーネント JLabel:ラベルの表示に使用します。 JTextField:ユーザー名の入力欄です。 JPasswordField: