Component/Container in Image zeichnen

Ich hab folgendes Problem und zwar müsste ich eine Panel(Container) mit ein paar TextFields(Components) graphisch darstellen… das heißt ich möchte ein Image Object haben das den ganzen Container mit den darin befindlichen Components darstellt…
Ich habe folgenden Code geschrieben, der rein logisch eigentlich funktionieren sollte… ich erzeuge ein Image Objekt hole mir von jenem das Graphics Objekt und übergebe dieses dann der paint oder
paintComponents methode des Containers… naja aber leider funktioniert das nicht so wie ich es mir dachte :wink: (ist nur Beispiel code, deswegen nicht auf design patterns achten)…

import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class imagetest extends Frame
{
Image img;
Panel testPanel=new Panel();
TextField text=new TextField(„hallo“);
Canvas testcanvas= new Canvas();

public static void main(String args[])
{
new imagetest().go();
}

public void go()
{
testPanel.add(text);
this.add(testcanvas);

this.setSize(100,100);
this.setVisible(true);
img = createImage(100,100);
Graphics g = img.getGraphics();
testPanel.printAll(g); /* habe auch paint, paintComponents, und print versucht, kein Erfolg */
Graphics g2 = testcanvas.getGraphics();
g2.drawImage(img,0,0,this);
}

}

danke für eure Hilfe im vorraus,

Thomas

Canvas statt Image
Ich bin mir nicht sicher, ob dir das hilft, aber du könntest doch
statt des Image-Objektes ein Canvas-Objekt nehmen, davon eine
Klasse ableiten, die das Zeichnen übernimmt (also z.B. auch ein
Bild in sich selbst darstellen kann), und die übrigen Objekte
dann als deren Kinder da einbaust. So kannst du sogar GUI-Builder
benutzen, deine Klasse irgendwo in eine Frame hinein klicken und
dann lustig andere Objekte darauf ablegen.

Hilft dir das?

Stefan :smile: