# Zeichenfläche in einem JPanel?



## Kartoffelknolle (26. Feb 2006)

Hallo, ich komme hier leider nicht mehr weiter...
Ich versuche in einen Panel eine Zeichenfläche reinzupacken, aber irgendwie habe ich keine Ahnung wie ich das anstellen soll... Ich brauche eigendlich nur eine Zeichenfläche, möglichst als JPanel oder in einem JPanel, mit der ich wie mit AWT zeichnen kann... Ich hab schon folgendes probiert:


```
public class BCDrawpanel extends JPanel{

	public void BCDrawpanel() {


	}
	
	public void paintComponent(Graphics g) {
		g.setColor(new Color(255, 0, 0));
		g.drawLine(10, 10, 30, 10);
	}
	
	public static void main(String[] args) {

	}

}
```

Wenn ich dann einen JPanel durch die Klasse erstelle, sollte es eigendlich durch repaint() möglich sein, dass paintComponent aufgerufen wird. Aber irgendwie regt sich nix...
Gibt es irgendwelche Alternativen, wie ich eine Zeichenfläche in einen Panel packen kann? evtl. mit Canvas?

Vielen Dank im Vorraus!


----------



## Beni (26. Feb 2006)

Wenn du dieses BCDrawpanel instanziierst, und auf ein JFrame (oder ähnliches) setzt, wird zuerst die paint, und dann die paintComponent-Methode aufgerufen. Von dem her: alles richtig.

Vielleicht postest du mal den Rest deines Codes, denn dort könnte auch irgendwo ein Fehler sein...


----------



## André Uhres (26. Feb 2006)

Ja, dein Code funktioniert:

```
/*
 * TestDraw.java
 */
import java.awt.*;
import javax.swing.*;
public class TestDraw extends JFrame {
    public TestDraw() {
        setSize(100,50);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        getContentPane().add(new BCDrawpanel());
    }
    public static void main(String args[]) { new TestDraw().setVisible(true);}
}
class BCDrawpanel extends JPanel{
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(new Color(255, 0, 0));
        g.drawLine(10, 10, 30, 10);
    }
}
```


----------



## Kartoffelknolle (26. Feb 2006)

Naja ich packe den JPanel nochmal später in einen JPanel mit all den Constraints-Sachen...
Vielleicht habe ich dem Panel zu wenig Platz gegeben, ich probier mal die gepostete Version mit Größenzuweisung im Konstruktor...


----------



## Kartoffelknolle (26. Feb 2006)

Hey, es funktioniert jetzt, ich hatte den eigendlichen normalen Aufruf von paintComponent mit super.paintComponent() übersehen! Vielen Dank nochmal an euch!


----------

