Einzelnen Beitrag anzeigen
Alt 29.04.2002, 18:07   #1
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 40
Beiträge: 1.429


Standard 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);
}

}
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten