Insgesamt möchte ich ein JPanel auf ein gepuffertesImage zeichnen und es in einer Datei speichern. Aber es fällt mir schwer zu verstehen, wie ich auf das JPanel referenziere, auf dem ich male.Ich möchte auf einen JPanel verweisen, den ich erstellt habe
Meine Klasse erweitert JPanel, und ich zeichne darauf, aber ich definiere nie explizit ein JPanel-Objekt außer ich denke in meiner Hauptmethode (wenn ich es dem JFrame hinzufüge), aber das ist offensichtlich in einer anderen Klasse. Wie referenziere ich das JPanel, auf das ich implizit in der Klasse zugreife, die JPanel erweitert, so dass ich es als Parameter übergeben kann an:
öffentliche statische BufferedImage createImage (JComponent-Komponente) // < --- Ich möchte übergeben Mein JPanel hier, um ein gepuffertes Bild zu erstellen, dann ImageIO.write() verwenden, um die Datei zu speichern. { Dimension d = component.getSize();
if (d.width == 0 || d.height == 0)
{
d = component.getPreferredSize();
component.setSize(d);
}
Rectangle region = new Rectangle(0, 0, d.width, d.height);
return ScreenImage.createImage(component, region);
}
Ich hoffe, diese Frage macht Sinn. Ich weiß, dass ich mich wie ein Neuling anhöre, und das liegt daran, dass ich es bin. Bitte hilf mir. Vielen Dank!
Verwenden Sie einfach 'this', es bezieht sich immer auf die aktuelle' Object' der Klasse, keine Notwendigkeit, erstellen 'Object' wie' MyClass ObjektName = new MyClass(); ', benutze das stattdessen irgendwo (außer dem Konstruktor), du brauchst die Referenz der' Klasse' in der du arbeitest :-) –