Witam. Postanowiłem zrobić następującą rzecz. Tworzę sobie specjalną klasę DrawPanel. Klasa ta wygląda tak:

 class DrawPanel extends JPanel {
	private BufferedImage img;
	private Graphics2D imgGraph;
	
	public DrawPanel() {
		super();
		img = new BufferedImage(567, 571, BufferedImage.TYPE_INT_RGB);
		imgGraph = img.createGraphics();
	}
	
	public void drawSth() {
		imgGraph.setColor(Color.RED);
		imgGraph.drawOval(150,50,120,50);
		repaint();
	}
	
	public void clearImage() {
		imgGraph.setColor(Color.WHITE);
		imgGraph.fillRect(0,0,getWidth(),getHeight());
		repaint();
	}
	
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		g.drawImage(img, 0, 0, null);
	}
}

W jaki sposób użyć metody clearImage() do przemalowania BufferedImage na biało (z domyślnego czarnego) w konstruktorze DrawPanelu? Próbowałem tak:

public DrawPanel() {
		super();
		img = new BufferedImage(567, 571, BufferedImage.TYPE_INT_RGB);
		imgGraph = img.createGraphics();

                clearImage();
	} 

Jednak to nie działa. Domyślam się, ze chodzi tu o to, że ten obiekt - DrawPanel musi być wcześniej stworzony by to wywołać i wyczyścić BufferedImage (Kiedy robię to z klasy zupełnie innej -> działa bez zarzutu.

Ja jednak chciałbym, aby stworzenie DrawPanelu wiązało się jednoznacznie ze stworzeniem JPanelu na którym jest rysowany biały BufferedImage.

W jaki sposób to najlepiej załatwić?

Z góry dzięki za odpowiedzi :)