![]() |
![]() |
|
|
|||||||
| Programmierung Rat & Tat für Programmierer |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Elite
![]() Registriert seit: 14.11.1999
Alter: 40
Beiträge: 1.429
|
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); } } |
|
|
|
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|