回答編集履歴

3

追記

2022/11/09 17:13

投稿

jimbe
jimbe

スコア12632

test CHANGED
@@ -3,7 +3,7 @@
3
3
  ついでにドラッグでちらつきが酷かったのでダブルバッファリングしています。
4
4
  Frame 直接では余計な描画がありそうだったので描画領域用に Panel を拡張して使っています。
5
5
 
6
- 「マウスを押したら丸い図形が描画される」ように、 mousePressed でリストに追加しています。それにより最新の Figure はリストの最後、最古の Figure はリストの最初となりますので、「例えば10個だとしたら、11個目を描画するときに一番古い図形を消す」は、(描画時では無く)追加する時に先頭を削除しています。
6
+ 「マウスを押したら丸い図形が描画される」ように、 mousePressed でリストに追加しています。それにより最新の Figure はリストの最後、最古の Figure はリストの最初となりますので、「例えば10個だとしたら、11個目を描画するときに一番古い図形を消す」は、(描画時では無く)追加する時に先頭を削除で行い、「現在作成中」(ドラッグ中)なのは最新の Figure なので別変数で管理する必要は無くリストの最後のオブジェクトを変更しています。
7
7
  コマンドラインからの個数指定は、main メソッドで解析して渡しています。
8
8
 
9
9
  DrawingFrame.java

2

追記

2022/11/09 08:38

投稿

jimbe
jimbe

スコア12632

test CHANGED
@@ -2,6 +2,9 @@
2
2
  Figure や Circle がどんな定義なのか分からなかったのでテキトウに作りました。
3
3
  ついでにドラッグでちらつきが酷かったのでダブルバッファリングしています。
4
4
  Frame 直接では余計な描画がありそうだったので描画領域用に Panel を拡張して使っています。
5
+
6
+ 「マウスを押したら丸い図形が描画される」ように、 mousePressed でリストに追加しています。それにより最新の Figure はリストの最後、最古の Figure はリストの最初となりますので、「例えば10個だとしたら、11個目を描画するときに一番古い図形を消す」は、(描画時では無く)追加する時に先頭を削除しています。
7
+ コマンドラインからの個数指定は、main メソッドで解析して渡しています。
5
8
 
6
9
  DrawingFrame.java
7
10
  ```java

1

super 忘れ

2022/11/09 08:32

投稿

jimbe
jimbe

スコア12632

test CHANGED
@@ -37,6 +37,7 @@
37
37
  private VolatileImage backscreen;
38
38
 
39
39
  DrawingPanel(int max) {
40
+ super(null);
40
41
  //setBackground(Color.YELLOW);
41
42
 
42
43
  MouseAdapter adapter = new MouseAdapter() {