![]() |
![]() |
|
|
|||||||
| 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); } } |
|
|
|
|
|
#3 |
|
Elite
![]() Registriert seit: 14.11.1999
Alter: 40
Beiträge: 1.429
|
nein, nicht gelesen, ich habe mir die neue Doku von 1.4 noch nicht runtergeladen
, auf so einen Fehler komme ich nicht, da ich das ganze von gotojava gesucht habe..., und die Beispiele funzenthx, kannst du mir auch sagen, was ich machen muss damit es funzt??? |
|
|
|
|
|
#4 |
|
Hero
![]() |
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().
____________________________________
Bibel |
|
|
|
|
|
#5 |
|
Elite
![]() Registriert seit: 14.11.1999
Alter: 40
Beiträge: 1.429
|
Nein, dass wars nicht, aber in der update-methode funktioniert es!!!
Ps: GotoJava 2 3.Auflage rulez |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|