やりたいこと
描画クラス(様々な形を持っている)を作り、描画したい形のメソッドに引数を渡して画面領域に描画したい。
現在困っていること
以下のコードでは、Paintクラスのインストラクタを作成した際のコンストラクタで円を描いている状態です。
これでは、円を複数描写したいときに、インスタンスを複数生成しなくてはなりません。
試したこと
- コンストラクタを排除し、Graphics gをクラス頭で宣言し、draw(int x, int y, int width, int height)メソッドを作った。 etc...
その他参考にしたサイト
https://nompor.com/2017/11/30/post-1503/
以下、困っていることで書いたコードです。アドバイスお願いします。
java
1class Window extends JFrame 2{ 3 public Window(String title, int width, int height) { 4 super(title); 5 setDefaultCloseOperation(EXIT_ON_CLOSE); 6 setSize(width,height); 7 setLocationRelativeTo(null); 8 setResizable(false); 9 } 10} 11 12class Paint extends JPanel { 13 private int x, y, width, height; 14 Paint(int x, int y, int width, int height) 15 { 16 this.x = x; 17 this.y = y; 18 this.width = width; 19 this.height = height; 20 } 21 @Override 22 public void draw(Graphics g){ 23 g.setColor(Color.BLACK); 24 g.fillOval(x, y, width, height); 25 } 26} 27 28class Draw 29{ 30 public static void main(String[] args) 31 { 32 Window wd = new Window("test", 600, 600); 33 wd.setVisible(true); 34 wd.add(new Panel(300, 300, 600, 600)); 35 } 36 } 37}