ist es möglich ein JPanel samt zugehörigen paint() methoden als image zu speichern.
mein momentanes programm sieht wie folgt aus:
es handelt sich hierbei um ein simples programm.
das jframe besteht aus 2 jpanels, eines wo man einstellungen tätigen kann (panel1)
und das 2.aus einer zeichenfläche panel2.
ziel des programms soll es sein, ein zeichnung erstellen zu können und diese dann als png, jpeg oder bmp. zu speichern.
natürlich will ich nur jpanel2 samt inhalt speichern und nicht das komplette jframe.
im jpanel2, werden neue instanzen von der klasse kreis angelegt und diese einem vector hinzugefügt.
die klasse kreis macht nichts anderes, als einen kreis mit definiertem radius auf einen bestimmten position (im konstruktor übergebe) zu zeichnen.
in meiner zeichenfläche klasse rufe ich das ganze mit
auf und füge es einem vector hinzu.
in der paint methode der zeichenfläche zeichne ich alle elemente des vectors neu:
mein momentanes programm sieht wie folgt aus:
es handelt sich hierbei um ein simples programm.
das jframe besteht aus 2 jpanels, eines wo man einstellungen tätigen kann (panel1)
und das 2.aus einer zeichenfläche panel2.
ziel des programms soll es sein, ein zeichnung erstellen zu können und diese dann als png, jpeg oder bmp. zu speichern.
natürlich will ich nur jpanel2 samt inhalt speichern und nicht das komplette jframe.
im jpanel2, werden neue instanzen von der klasse kreis angelegt und diese einem vector hinzugefügt.
die klasse kreis macht nichts anderes, als einen kreis mit definiertem radius auf einen bestimmten position (im konstruktor übergebe) zu zeichnen.
Java:
class kreis() extends JPanel
{
int x, y;
public kreis (int x, int y)
{
this.x=x;
this.y=y;
}
public void paint(Graphics g)
{
g.DrawOval(x, y, 0, 0, this);
}
}
in meiner zeichenfläche klasse rufe ich das ganze mit
Java:
kreis k = new kreis(x,y);
Java:
v.addElement(k);
in der paint methode der zeichenfläche zeichne ich alle elemente des vectors neu:
Java:
void paint (Graphics g)
{
for(int n=0; n<v.size(); ++n)
{
((kreis) v.getElement(n)).paint(g);
}
}