Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(Swingのレイアウト)
閲覧数:1152
掲示板(Swingのレイアウト)
名前
題名 Swingのレイアウト
質問内容

質問を評価する
(0ポイント)
ベースとなるパネル上に3つパネルをBorderLayoutでそれぞれ
EAST、CENTER、WESTに配置するということをしていま
す。
実行してみると、CENTER部分のパネルしか表示されないと
いう状態になってしまうのですが(正確には左右のパネルが
一瞬表示されて消える)が原因は何が考えられますか。いろ
いろ試したのですがうまくいかないので質問しました。

パネルサイズはそれぞれベースとなるパネルの幅は1/3、高さ
は同じサイズで、左右のパネルには画像1つずつ、中央のパネ
ルにはJButtonと画像が1つあります。
また、中央のパネルのボタンのadd(button)部分をコメントア
ウトすると左のパネルと中央のパネルのみ表示され、ベース
のパネルでadd(中央のパネル)をコメントアウトするか中央の
パネルをsetVisible(false)にすると左右のみ表示されます。
質問日時 2013-06-10 12:52:19
名前
匿名
回答内容

回答を評価する
(0ポイント)
sourceをださないと回答つかないとおもうよ。
回答日時 2013-06-10 16:47:06
名前
匿名
回答内容

回答を評価する
(0ポイント)
計算がおかしいか、追加する箇所がおかしいかじゃないの?
くらいしか言えないねえ、これじゃ。
回答日時 2013-06-10 19:27:57
名前
回答内容

回答を評価する
(10ポイント)
左右のパネルの画像はどうやって追加したのでしょうか?
JLabel にアイコンならその画像の大きさになると思いますが?
BorderLayoutは中央は目一杯広がるように、周囲は極力狭まるように
配置しますから、周囲に大きさの主張が無いパネルを置いたら
幅や高さが 0 にされてしまいます。
JPanel のデフォルトのレイアウトマネージャーは FlowLayout ですから、
アイコンを設定した JLabel が入っていれば大きさはその画像に
なりますが paintComponent で独自に描画する場合は明示的に大きさを
主張しないと駄目です。
setPreferredSize setMaximumSize setMinimumSize

三分の一ずつにしたい場合は BorderLayout 不適当です。
GridLayout をお試しください。
回答日時 2013-06-11 09:30:58

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道