🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JFrame

JFrameはJFC/Swingフレームワークのコンポーネントであり、トップレベルのコンテナです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

Q&A

解決済

1回答

8856閲覧

Javaで、2つ以上のJPanelをJFrame内に追加すると、最後に追加したものしか表示されない。

nkn__

総合スコア8

JFrame

JFrameはJFC/Swingフレームワークのコンポーネントであり、トップレベルのコンテナです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

0グッド

0クリップ

投稿2019/10/09 12:45

実現したいこと

JPanelオブジェクトを複数配置したいのですが、↓の画像のように最後にadd()したJPanelオブジェクトしかフレームに表示されません。
何か解決方法はありますでしょうか…。

スクリーンショット

該当のソースコード

Java

1package mainPack; 2 3import javax.swing.*; 4import java.awt.*; 5 6class Main{ 7 public static void main(String[] args){ 8 9 viewFrame(); 10 11 } 12 13 public static void viewFrame(){ 14 15 JFrame frm001=new JFrame("frm001"); 16 frm001.setVisible(true); 17 frm001.setSize(500,300); 18 19 JPanel pnl001=new JPanel(); 20 JPanel pnl002=new JPanel(); 21 JPanel pnl003=new JPanel(); 22 23 24 JLabel lbl001=new JLabel("ラベル001"); 25 lbl001.setFont(new Font("游ゴシック", Font.PLAIN, 50)); 26 27 JLabel lbl002=new JLabel("ラベル002"); 28 lbl002.setFont(new Font("游ゴシック", Font.PLAIN, 50)); 29 30 JLabel lbl003=new JLabel("ラベル003"); 31 lbl003.setFont(new Font("游ゴシック", Font.PLAIN, 50)); 32 33 pnl001.add(lbl001); 34 pnl002.add(lbl002); 35 pnl003.add(lbl003); 36 37 frm001.add(pnl001); 38 frm001.add(pnl002); 39 frm001.add(pnl003); 40 41 } 42}

実行環境

JDKのバージョン : 12.0.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

JFrame.add() は, JFrame.getContentPane().add() のコンビニエンスメソッドだったと思います.
JFrame.getContentPane() が返す Container のデフォルトLayoutManager は BorderLayout であり, 従って add の第二引数を省略すると全て BorderLayout.CENTER と見なされ, 同じ位置にあったコンポーネントは置き換えられます.
ですので, 必要に応じて add の第二引数を BorderLayout.CENTER 以外で指定するか, レイアウトを変更するか, 必要な設定をしたパネル1つだけをJFrame に add するか...などが考えられます.

投稿2019/10/10 16:28

jimbe

総合スコア13202

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問