teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

追記

2017/11/20 12:49

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -1,3 +1,6 @@
1
+ 追記:もう一つ言い忘れました。コードは`>`で表現するのではなくマークダウン(コード行の前後にバッククォート文字を3つ連続して書く)を使って本回答にあるようにしていただきたいです。質問編集画面でコードの行を選択し`<code>`ボタンを押すとそうできます。
2
+
3
+ ---
1
4
  レイアウトって難しいですよね・・・
2
5
 
3
6
  何が最適かはある程度試してみて特徴をつかむ必要があると思いますが・・・

3

誤記訂正

2017/11/20 12:48

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -25,7 +25,7 @@
25
25
  ```
26
26
  左右のバランスはTextAreaのpreferredSizeの横幅と右側にある一番大きな部品のpreferredSizeの横幅によって決まります。
27
27
 
28
- なお、JFrameのcontentPaneにはデフォルトでBorderLayoutを持つJPanelになっていることはご存知と思いますが、例えば上記のようにしたいとき、デフォルトのJPanelをそのまま使わなくてはならないルールはないので、入れかてしまってもよいですし、デフォルトのJPanelのCENTERへaddしてやってもよいでしょう。
28
+ なお、JFrameのcontentPaneにはデフォルトでBorderLayoutを持つJPanelになっていることはご存知と思いますが、例えば上記のようにしたいとき、デフォルトのJPanelをそのまま使わなくてはならないルールはないので、入れかてしまってもよいですし、デフォルトのJPanelのCENTERへaddしてやってもよいでしょう。
29
29
 
30
30
  ```Java
31
31
  public MyFrame extends JFrame {

2

GridLayoutに「同じ大きさ」を補足

2017/11/20 12:35

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -50,4 +50,4 @@
50
50
  (1) or (2)いずれかを選択
51
51
 
52
52
  ---
53
- なおGridLayoutも使えなくはないと思います。ただ、GridLayoutはROWS x COLUMNSの格子状に部品を並べるためのもので将棋盤のようなものなら一番適していますが、本件のようなものには今一つマッチしないと思います。というのは「全体を左右に分けて」=>「さらに右側を上下に分けて」=>「さらに・・・」というように階層的な構成を格子として考えるとrow span/column spanを使わざるを得ず、あまり自然な配置設計でない気がするのです。
53
+ なおGridLayoutも使えなくはないと思います。ただ、GridLayoutはROWS x COLUMNSの同じ大きさの区画に格子状に部品を並べるためのもので将棋盤のようなものなら一番適していますが、本件のようなものには今一つマッチしないと思います。というのは「全体を左右に分けて」=>「さらに右側を上下に分けて」=>「さらに・・・」というように階層的な構成を格子として考えるとrow span/column spanを使わざるを得ず、あまり自然な配置設計でない気がするのです。

1

誤記訂正

2017/11/20 11:45

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -25,7 +25,7 @@
25
25
  ```
26
26
  左右のバランスはTextAreaのpreferredSizeの横幅と右側にある一番大きな部品のpreferredSizeの横幅によって決まります。
27
27
 
28
- なお、JFrameのcontentPaneにはデフォルトでBorderLayoutを持つJPanelであることはご存知と思いますが、例えば上記のようにしたいとき、デフォルトのJPanelをそのまま使わなくてはならないルールはないので、入れかてしまってもよいですし、デフォルトのJPanelのCENTERへaddしてやってもよいでしょう。
28
+ なお、JFrameのcontentPaneにはデフォルトでBorderLayoutを持つJPanelになっていることはご存知と思いますが、例えば上記のようにしたいとき、デフォルトのJPanelをそのまま使わなくてはならないルールはないので、入れかてしまってもよいですし、デフォルトのJPanelのCENTERへaddしてやってもよいでしょう。
29
29
 
30
30
  ```Java
31
31
  public MyFrame extends JFrame {