回答編集履歴
1
誤記訂正
test
CHANGED
@@ -60,7 +60,7 @@
|
|
60
60
|
|
61
61
|
|
62
62
|
|
63
|
-
申し訳ないですが質問のコードとはクラス構成が異なっており、メインクラスはJFrameの派生でありメイン画面の定義処理はmainメソッドではなくMyFrameクラスのコンストラクターでやっている点が若干比較しずらい
|
63
|
+
申し訳ないですが質問のコードとはクラス構成が異なっており、メインクラスはJFrameの派生でありメイン画面の定義処理はmainメソッドではなくMyFrameクラスのコンストラクターでやっている点が若干比較しずらいですが、自分がポイントであると思う処理の違いは(1),(2)ですのでとりあえずはそこに注目してください。
|
64
64
|
|
65
65
|
|
66
66
|
|
@@ -68,7 +68,7 @@
|
|
68
68
|
|
69
69
|
(1) コンポーネントのレイアウト(位置と大きさ)
|
70
70
|
|
71
|
-
swing前提でのゲームのコード
|
71
|
+
特にswing前提でのゲームのコードで、普通のレイアウト機構を用いずに標準的とはいえない方法で(つまり自前で各々のコンポーネントのレイアウトを明示する方針で)書いたコードをよく見かける気がします。ご質問のコードもその傾向にあると思います。少なくとも自分にはそのようなコードを見たとき、正しくレイアウトできているかどうか分かりづらく感じます。普通のレイアウト機構とは「レイアウト制約を宣言的に指定し、実際のリサイズや配置はレイアウトマネージャーに任せる」「初期レイアウトはJFrame#packにより行う」といった点を指します。
|
72
72
|
|
73
73
|
|
74
74
|
|
@@ -76,7 +76,7 @@
|
|
76
76
|
|
77
77
|
|
78
78
|
|
79
|
-
とりあえず**何もコンテントが出ないという状況は`JFrame#pack`を呼び出せば解消できます**。
|
79
|
+
とりあえず**何もコンテントが出ないという状況は`JFrame#setVisible`の直前で`JFrame#pack`を呼び出せば解消できます**。コンテントが表示されるようになるので、後は個々のコンポーネントのレイアウトの乱れを修正していくことで期待するレイアウトにもっていけそうです。(実際にいくつか乱れがあるようですが、自分はそれらの原因を指摘できるほどには詳細にコードをみていません。)
|
80
80
|
|
81
81
|
|
82
82
|
|
@@ -106,7 +106,7 @@
|
|
106
106
|
|
107
107
|
---
|
108
108
|
|
109
|
-
(1),(2)共通に言えることなのですが、swingに限らず、GUIプログラミング(特にレイアウト)はそもそもの機構が複雑なので、なるべく平易な方法(作法)を知りそれに沿ったコードを書くことが大事な気がします。そうでないとコードを見
|
109
|
+
(1),(2)共通に言えることなのですが、swingに限らず、GUIプログラミング(特にレイアウト)はそもそもの機構が複雑なので、なるべく平易な方法(作法)を知りそれに沿ったコードを書くことが大事な気がします。そうでないとコードを見ても「うまく動くかどうか」がすぐにはわかりづらく(※)、悪くすると動かしてみても原因がつかめないといったことになりがちと思います。何が平易な作法なのかというのは一言で言うのは難しいですが、とりあえず本件でいえば「レイアウトマネージャーにレイアウトをまかせること」というのが自分の意見です。
|
110
110
|
|
111
111
|
|
112
112
|
|