WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 29.04.2002, 17: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
Alt 30.04.2002, 09:32   #2
Flink
Hero
 
Registriert seit: 29.08.2001
Alter: 57
Beiträge: 904


Flink eine Nachricht über ICQ schicken Flink eine Nachricht über Skype™ schicken
Standard

schon gelesen, was unter createImage steht?

Fall: GraphicsEnvironment.isHeadless() returns true
____________________________________
Bibel
Flink ist offline   Mit Zitat antworten
Alt 30.04.2002, 10:42   #3
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 40
Beiträge: 1.429


Standard

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 funzen

thx, kannst du mir auch sagen, was ich machen muss damit es funzt???
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 30.04.2002, 13:56   #4
Flink
Hero
 
Registriert seit: 29.08.2001
Alter: 57
Beiträge: 904


Flink eine Nachricht über ICQ schicken Flink eine Nachricht über Skype™ schicken
Standard

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
Flink ist offline   Mit Zitat antworten
Alt 11.05.2002, 20:42   #5
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 40
Beiträge: 1.429


Standard

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

Ps: GotoJava 2 3.Auflage rulez
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:00 Uhr.


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