Hallo Leute,
ich bin seit 3-4 Wochen fleißig mit Java beschäftigt und arbeite mich lagnsam voran vom Wissen her. Ich arbeite seit gestern an einem Zeichenprogramm und da ich schon einiges eingebaut habe, frag ich mich nun, wie lässt sich das optimal speichern?
Habe natürlich viel gegooglet und z.B. sowas gefunden:
kleines "Tutorial"
Forumthema
Wobei ich daraus noch nicht 100%ig schlau geworden bin
Hier mal meine Methode "save()":
Wenn ich das bisher richtig verstanden habe, muss ich das in ein BufferedImage umwandeln, wobei es schon da bei mir hackt - wie ihr seht benutzt ich
. Wenn ich das Bild dadurch nun speichern und ausgeben(durch Paint) lass. Wird der "Hintergrund" schwarz und nur andere Farben als schwarz kommen noch hervor. In der paint()-Methode von tempPanel benutzt ich "clearRect", weshalb ich dachte, das schwarz stellt das "nichts" da, wie man das von Paint halt kennt. Also hab ich nochmal ein weißes Rechteck auf dem TempPanel gemalt und alle Objekte(sprich Kreise etc.) neu gezeichnet - kein Erfolg :/ Das selbe hab ich auch vor dem "Überspielen" bei dem BufferedImage versucht... ebenfalls gescheitert.
Wisst ihr eine Lösung für mein Problem oder vll. eine andere Möglichkeit, um mein JPanel als Bild zu speichern?
Gruß, der neue User Thomas
ich bin seit 3-4 Wochen fleißig mit Java beschäftigt und arbeite mich lagnsam voran vom Wissen her. Ich arbeite seit gestern an einem Zeichenprogramm und da ich schon einiges eingebaut habe, frag ich mich nun, wie lässt sich das optimal speichern?
Habe natürlich viel gegooglet und z.B. sowas gefunden:
kleines "Tutorial"
Forumthema
Wobei ich daraus noch nicht 100%ig schlau geworden bin
Hier mal meine Methode "save()":
Java:
public void save(){
FileDialog d = new FileDialog(this,"Bild speichern...",FileDialog.SAVE);
d.setLocale(Locale.getDefault());
d.setVisible(true);
String name = d.getDirectory();
name += d.getFile();
BufferedImage img = new BufferedImage(935,680, BufferedImage.TYPE_INT_RGB);
tempPanel.paint(img.createGraphics()); // tempPanel ist das JPanel
try{
ImageIO.write(img, "jpeg", new File(name));
}
catch (IOException e) {
e.printStackTrace();
}
}
Wenn ich das bisher richtig verstanden habe, muss ich das in ein BufferedImage umwandeln, wobei es schon da bei mir hackt - wie ihr seht benutzt ich
Code:
tempPanel.paint(img.createGraphics());
Wisst ihr eine Lösung für mein Problem oder vll. eine andere Möglichkeit, um mein JPanel als Bild zu speichern?
Gruß, der neue User Thomas