回答編集履歴
1
ちょっと違うかな?^^;
answer
CHANGED
@@ -14,8 +14,11 @@
|
|
14
14
|
理屈
|
15
15
|
`JPanel#paintComponent(Graphics g)`は`background`カラーで塗りつぶすのが規定動作です。
|
16
16
|
それを飛ばすと前回の描画が残ることになります。
|
17
|
-
残ったとしても同じ位置に描くのだから問題ないはずですが、レイアウトの最中に?何度か呼ばれることがあるようです(このあたり詳細わかりません)
|
17
|
+
~~残ったとしても同じ位置に描くのだから問題ないはずですが、レイアウトの最中に?何度か呼ばれることがあるようです(このあたり詳細わかりません)~~
|
18
|
-
`System.out.println("paintComponent");`等を入れるとわかります。
|
18
|
+
~~`System.out.println("paintComponent");`等を入れるとわかります。~~
|
19
19
|
|
20
|
-
手元では起動するだけで2回呼ばれました。
|
20
|
+
~~手元では起動するだけで2回呼ばれました。~~
|
21
|
-
その際`JPanel`自体の位置が、微妙に違ってしまっているということだと思います。
|
21
|
+
~~その際`JPanel`自体の位置が、微妙に違ってしまっているということだと思います。~~
|
22
|
+
|
23
|
+
起動時に2重になっていないので、ちょっと違うかな?^^;
|
24
|
+
`setBounds(0,0,600,600);`等と、0,0起点にするとずれないのでレイアウト関連ではあると思います。
|