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

回答編集履歴

3

追加

2025/01/22 04:32

投稿

jimbe
jimbe

スコア13352

answer CHANGED
@@ -12,4 +12,7 @@
12
12
  クリッドレイアウトはウインドウを仮想的に指定した行列に分けて、 add した順にコンポーネントを並べるものですので、第二引数は使われません。
13
13
  (もしかしてコンポーネントへの setBound でグリッドの位置を指定しているつもりかもしれませんが、全く関係ありません。)
14
14
 
15
- それと、 Swing は最初に ```setVisible(true)``` した瞬間から(main メソッドを実行しているスレッドとは)別スレッドで動作し始めます。 Swing のコンポーネントは一部を除きマルチスレッドでの動作は保証されていませんので、 setVisible(true) 後にコンポーネントを操作しないよう、つまりコンポーネントの準備が全て終わってから setVisible(true) するようにしてください。
15
+ それと、 Swing は最初に ```setVisible(true)``` した瞬間から(main メソッドを実行しているスレッドとは)別スレッドで動作し始めます。 Swing のコンポーネントは一部を除きマルチスレッドでの動作は保証されていませんので、 setVisible(true) 後にコンポーネントを操作しないよう、つまりコンポーネントの準備が全て終わってから setVisible(true) するようにしてください。
16
+
17
+ ついでに、```lbl_setMin``` が使われていないのはバグですね?
18
+ 無暗に変数をフィールドにすると、コピペ等で変数名の変更を忘れていた場合でのバグを IDE からの"使われていない" 警告で発見することが難しくなります。

2

追加

2025/01/22 04:24

投稿

jimbe
jimbe

スコア13352

answer CHANGED
@@ -10,4 +10,6 @@
10
10
  ```add(panel,BorderLayout.CENTER);```
11
11
  と、 add メソッドの第二引数にボーダーレイアウト(レイアウトマネージャ)用のパラメータを指定しています。
12
12
  クリッドレイアウトはウインドウを仮想的に指定した行列に分けて、 add した順にコンポーネントを並べるものですので、第二引数は使われません。
13
- (もしかしてコンポーネントへの setBound でグリッドの位置を指定しているつもりかもしれませんが、全く関係ありません。)
13
+ (もしかしてコンポーネントへの setBound でグリッドの位置を指定しているつもりかもしれませんが、全く関係ありません。)
14
+
15
+ それと、 Swing は最初に ```setVisible(true)``` した瞬間から(main メソッドを実行しているスレッドとは)別スレッドで動作し始めます。 Swing のコンポーネントは一部を除きマルチスレッドでの動作は保証されていませんので、 setVisible(true) 後にコンポーネントを操作しないよう、つまりコンポーネントの準備が全て終わってから setVisible(true) するようにしてください。

1

追加

2025/01/22 04:18

投稿

jimbe
jimbe

スコア13352

answer CHANGED
@@ -2,4 +2,12 @@
2
2
  レイアウトマネージャが設定されているといくら大きさ・座標を設定してもレイアウトマネージャが動かしてしまいます。
3
3
  panel のレイアウトマネージャに null を設定することで各コンポーネントに設定した大きさ・座標で表示されるようになると思います。
4
4
 
5
- なお、 Swing はレイアウトマネージャに大きさ・座標の設定を任せてウインドウの大きさの変更や各コンポーネントの状態に自動的に対応するように作ることが前提です。
5
+ なお、 Swing はレイアウトマネージャに大きさ・座標の設定を任せてウインドウの大きさの変更や各コンポーネントの状態に自動的に対応するように作ることが前提です。
6
+
7
+ また、 JFrame のデフォルトのコンテンツパネルへの設定も一貫性がありません。
8
+ ```setLayout(new GridLayout(60,80));```
9
+ はコンテンツパネルにグリッドレイアウト(レイアウトマネージャ)を設定していますが、 panel をコンテンツパネルに配置する際には
10
+ ```add(panel,BorderLayout.CENTER);```
11
+ と、 add メソッドの第二引数にボーダーレイアウト(レイアウトマネージャ)用のパラメータを指定しています。
12
+ クリッドレイアウトはウインドウを仮想的に指定した行列に分けて、 add した順にコンポーネントを並べるものですので、第二引数は使われません。
13
+ (もしかしてコンポーネントへの setBound でグリッドの位置を指定しているつもりかもしれませんが、全く関係ありません。)