Hallo,
folgendes Problem: Ich habe mein Programm in eclipse unter Windows gebaut. da es sehr viel Zeit in Anspruch nimmt, soll es jetzt auf einem Linux-Cluster gerechnet werden. Eigentlich läuft alles ganz gut, aber ich bekomme beim Erstellen einer Grafik zum Abspeichern folgende Fehlermeldung:
Exception in thread "main" java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
at java.awt.Window.<init>(Window.java:406)
at java.awt.Frame.<init>(Frame.java:402)
at helpFunctions.Grafik.<init>(Grafik.java:36)
at helpFunctions.Output.saveImage(Output.java:302)
at realObjects.Farmer.dynamics(Farmer.java:1216)
at runpackage.InitRapecrossing.<init>(InitRapecrossing.java:103)
at runpackage.InitRapecrossing.main(InitRapecrossing.java:132)
Die Grafik soll ganrnicht angezeigt, sondern nur abgespeichert werden. Aber dazu muss ich ja praktisch im Hintergrund eine Grafik bauen. Hier ist der Grafikcode aus class Output
Fehlermeldung in Zeile: Grafik hop = new Grafik(real, small); ((Output.java:302))
und hier die aufgerufene Klasse Grafik
Fehlermeldung in super("Landscape"); (Grafik.java:36)
Kann mir jemand einen Hinweis geben, wie ich diese Fehlermeldung umgehen und die Grafik dennoch abspeichern kann?
Ganz vielen Dank
Jörg
folgendes Problem: Ich habe mein Programm in eclipse unter Windows gebaut. da es sehr viel Zeit in Anspruch nimmt, soll es jetzt auf einem Linux-Cluster gerechnet werden. Eigentlich läuft alles ganz gut, aber ich bekomme beim Erstellen einer Grafik zum Abspeichern folgende Fehlermeldung:
Exception in thread "main" java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
at java.awt.Window.<init>(Window.java:406)
at java.awt.Frame.<init>(Frame.java:402)
at helpFunctions.Grafik.<init>(Grafik.java:36)
at helpFunctions.Output.saveImage(Output.java:302)
at realObjects.Farmer.dynamics(Farmer.java:1216)
at runpackage.InitRapecrossing.<init>(InitRapecrossing.java:103)
at runpackage.InitRapecrossing.main(InitRapecrossing.java:132)
Die Grafik soll ganrnicht angezeigt, sondern nur abgespeichert werden. Aber dazu muss ich ja praktisch im Hintergrund eine Grafik bauen. Hier ist der Grafikcode aus class Output
Code:
public void saveImage(String path, boolean real, boolean small) {
Grafik hop = new Grafik(real, small);
BufferedImage image = new BufferedImage(hop.getWidth(),
hop.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
hop.paint(g);
try {
ImageIO.write(image, "jpeg", new File(path));
} catch (IOException e1) {
// TODO Automatisch erstellter Catch-Block
e1.printStackTrace();
}
}
und hier die aufgerufene Klasse Grafik
Code:
public Grafik(boolean landscape, boolean kleinreal) {
super("Landscape");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setSize(n * cellsize + moveFactor, n * cellsize + moveFactor + 10);
this.landscape = landscape;
this.kleinreal = kleinreal;
}
Fehlermeldung in super("Landscape"); (Grafik.java:36)
Kann mir jemand einen Hinweis geben, wie ich diese Fehlermeldung umgehen und die Grafik dennoch abspeichern kann?
Ganz vielen Dank
Jörg