回答編集履歴

2

修正

2024/02/13 07:21

投稿

jimbe
jimbe

スコア13170

test CHANGED
@@ -1,7 +1,7 @@
1
1
  java はオブジェクト指向ですので、オブジェクト指向的な考え方と java-swing での書き方をする必要があります。
2
2
 
3
3
  円は CirclePanel が自身に書いていますので、円の大きさの指定も CirclePanel を通じて行うのが妥当です。それはフレームの大きさを setSize で設定したりするのと同じことです。
4
- そして、 Swing のコンポーネントは内容が変化した場合はそれを Swing 描画を担当するスレッドに変化たことを通知して再描画して貰う(=paintComponent を呼んで貰う) ことで間接的に再表示する必要があります。
4
+ そして、 Swing のコンポーネントは内容が変化した場合は Swing に再描画して欲しい旨を通知して paintComponent を呼んで貰うことで **間接的に再表示** する必要があります。(ただし通知した瞬間に即再表示されるわけでは無いことに注意が必要です。)
5
5
  ```java
6
6
  import java.awt.*;
7
7
  import java.awt.geom.Ellipse2D;

1

修正

2024/02/13 07:13

投稿

jimbe
jimbe

スコア13170

test CHANGED
@@ -1,4 +1,4 @@
1
- java はオブジェクト指向ですので、オブジェクト指向的な考え方と java での書き方をする必要があります。
1
+ java はオブジェクト指向ですので、オブジェクト指向的な考え方と java-swing での書き方をする必要があります。
2
2
 
3
3
  円は CirclePanel が自身に書いていますので、円の大きさの指定も CirclePanel を通じて行うのが妥当です。それはフレームの大きさを setSize で設定したりするのと同じことです。
4
4
  そして、 Swing のコンポーネントは内容が変化した場合はそれを Swing の描画を担当するスレッドに変化したことを通知して再描画して貰う(=paintComponent を呼んで貰う) ことで間接的に再表示する必要があります。