WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   createImage und NullPointerException (http://www.wcm.at/forum/showthread.php?t=54912)

3of4 29.04.2002 17:07

createImage und NullPointerException
 
Ich kriege immer beim ausführen meines Baumes an der selben Stelle eine NullPointerException (seit wann gibt es in Java denn Pointer ;) :) ), und zwar nach dem Erzeugen eines Bildes mit createImage(this.getSize().height,this.getSize().w ith);
muss ich das mit dem Mediatracker machen, oder wieso kann ich kein Image erzeugen.

Source:

import java.awt.*;
//=======__________=============================
public class GraphicTree extends Canvas{
int i=0;
Tree t;
AvlTreenode tn,arrow;
Image dbi;
Graphics dbg;
//~~~___________~~~~~~~~
public GraphicTree(Tree t1){
setBackground(SystemColor.menu);
setSize(400,200);
t = t1;
}
//~~~~~~~____~
public void run(){
dbi=createImage(400,200);
this.getSize().width,
this.getSize().height
);
System.out.println(""+dbi); /Ausgabe: null
dbg=dbi.getGraphics();
arrow=t.getArrow();
createGraph(0,1,1,t.getRoot()); //Exception
repaint();
try{
Thread.sleep(1000);
}
catch(InterruptedException ie){}
}
//~~~~~~~____~~~~~~~~~~
public void paint(Graphics g){


}
//~~~~~~~~__________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
private void createGraph(int row, int eitr, int noe, AvlTreenode tn){
int cwidth=getWidth()/2;
int x,y;
if(tn.getPrev()!=null){
dbg.drawLine(cwidth/noe*eitr+10,row*40+10,cwidth/(noe*2)*(eitr*2-1)+10,(row+1)*40);
createGraph(row+1, (eitr*2)-1, noe*2, tn.getPrev());
}
if(tn.getNext()!=null){
dbg.drawLine(cwidth/noe*eitr+10,row*40+10,cwidth/(noe*2)*(eitr*2+1)+10,(row+1)*40);
createGraph(row+1, eitr*2+1, noe*2, tn.getNext());
}
if(t.isLeaf(tn)){
dbg.setColor(SystemColor.menu);
dbg.fillOval(cwidth/noe*eitr-5,row*40-5,30,20);
dbg.setColor(Color.black);
dbg.drawOval(cwidth/noe*eitr-5,row*40-5,30,20);
}
else{
dbg.drawRect(cwidth/noe*eitr,row*40,22,12);
}
if(tn==arrow){
dbg.drawLine(cwidth/noe*eitr+10,row*40+20,cwidth/noe*eitr+10,row*40+50);
dbg.drawLine(cwidth/noe*eitr+10,row*40+20,cwidth/noe*eitr,row*40+25);
dbg.drawLine(cwidth/noe*eitr+10,row*40+20,cwidth/noe*eitr+20,row*40+25);
}
dbg.drawString(""+tn.getInt(),(cwidth/noe*eitr)+1,row*40+11);
}

}

Flink 30.04.2002 09:32

schon gelesen, was unter createImage steht?

Fall: GraphicsEnvironment.isHeadless() returns true

3of4 30.04.2002 10:42

nein, nicht gelesen, ich habe mir die neue Doku von 1.4 noch nicht runtergeladen :mad: :mad:, auf so einen Fehler komme ich nicht, da ich das ganze von gotojava gesucht habe..., und die Beispiele funzen

thx, kannst du mir auch sagen, was ich machen muss damit es funzt???

Flink 30.04.2002 13:56

Das war wohl nicht der Fehler, ich habe jetzt die Bedeutung von isHeadless nachgelesen.

Versuch doch einmal folgendes:
dbi=createImage(getWidth(),getHeight());
Ich kann es jetzt leider nicht ausprobieren.
Laß' dir zumindest das Ergebnis (dbi) anzeigen, bzw. auch die Werte von getWidth() und getHeigth().

3of4 11.05.2002 20:42

Nein, dass wars nicht, aber in der update-methode funktioniert es!!!

Ps: GotoJava 2 3.Auflage rulez


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag