Supportnet / Forum / Anwendungen(Java,C++...)
Java: NullPointerException
Frage
Hallo,
ich hab ein kleines Problem. Der folgende Code wirft eine NullPointerException, obwohl alles klappt, wie es klappen soll...hat jemand nen Plan?
Start-Klasse:
[code]
package maptest;
public class StartMaptest
{
public static void main(String[]args)
{ MaptestAnwendung mt = new MaptestAnwendung();
mt.fuehreAus();
}
}
[/code]
Anwendungs-Klasse:
[code]
package maptest;
import stiftUndCo.*;
public class MaptestAnwendung
{ Bildschirm bildschirm;
BuntStift buntstift;
Maus maus;
Karte karte;
public MaptestAnwendung()
{ bildschirm = new Bildschirm(800,600);
buntstift = new BuntStift();
maus = new Maus();
karte = new Karte(bildschirm);
}
public void fuehreAus()
{ karte.maleKarte();
int karteX = -1000;
int karteY = -1400;
do
{ if(maus.hPosition() > 750)
{ if(karteX > -1200)
{ karteX = karteX - 5;
}
}
if(maus.hPosition() < 50)
{ if(karteX < -5)
{ karteX = karteX + 5;
}
}
if(maus.vPosition() > 550)
{ if(karteY > -1400)
{ karteY = karteY - 5;
}
}
if(maus.vPosition() < 50)
{ if(karteY < -5)
{ karteY = karteY + 5;
}
}
karte.KarteAufBildschirm(karteX+5, karteY+32);
Hilfe.warte(10);
}
while(true);
}
}
[/code]
Zeichen-Klasse:
[code]
package maptest;
import stiftUndCo.*;
import java.awt.*;
public class Karte
{ Bildschirm bildschirm;
BuntStift buntstift;
Image image;
Graphics iG;
public Karte(Bildschirm b)
{ bildschirm = b;
buntstift = new BuntStift();
image = bildschirm.createImage(2000,2000);
iG = image.getGraphics();
}
public void KarteAufBildschirm(int x, int y)
{ bildschirm.getGraphics().drawImage(image, x, y, bildschirm);
}
public void maleKarte()
{ for(int i=0; i<10; i++)
{ for (int j = 0; j < 10; j++)
{ iG.setColor(Farbe.rgb(Hilfe.zufall(0,255),Hilfe.zufall(0,255),Hilfe.zufall(0,255)));
iG.fillRect(i*200, j*200 ,200 ,200);
}
}
}
}
[/code]
Antwort 1 von joto
Aso sry 4 dp:
Kann man die Exception auch unterdrücken (da ja eig alles läuft)? Wenn ja: wie? thx
joto
Kann man die Exception auch unterdrücken (da ja eig alles läuft)? Wenn ja: wie? thx
joto
Antwort 2 von Dr.Ma-Busen
Moin!
Die Exception kannst du abfangen und unterdrücken. Siehe dazu hier:
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html
MfG
Zitat:
Die NullPointerException wird ausgelöst, wenn versucht wird, über einen Verweis, der den Wert null hat, ein Datenelement, eine Methode oder ein Array-Element anzusprechen.
QuelleDie NullPointerException wird ausgelöst, wenn versucht wird, über einen Verweis, der den Wert null hat, ein Datenelement, eine Methode oder ein Array-Element anzusprechen.
Die Exception kannst du abfangen und unterdrücken. Siehe dazu hier:
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html
MfG
Antwort 3 von joto
und was is nu genau das problem, dass die überhaupt auftaucht? ISt das Prob, dass ich nen Image zeichne, das gar nicht auffm Bildschirm (im AWT-Frame) liegt?
Antwort 4 von Rangoo
Hallo,
da müsste man jetzt gewaltig ins Blaue raten. An welcher Stelle wird denn überhaupt die Exception geworfen?
da müsste man jetzt gewaltig ins Blaue raten. An welcher Stelle wird denn überhaupt die Exception geworfen?
Antwort 5 von cmkatz
Hallo,
poste doch mla die komplette Exception-Meldung, die ausgegeben wird. Dann sieht man auch, wo, also in welcher Klasse in welcher Zeile, die Exception geschmissen wird...
Gruß
cmkatz
poste doch mla die komplette Exception-Meldung, die ausgegeben wird. Dann sieht man auch, wo, also in welcher Klasse in welcher Zeile, die Exception geschmissen wird...
Gruß
cmkatz
Antwort 6 von joto
Die NullPointer is in der Zeichen-Klasse in der Zeile:
ich vermute es liegt dran, dass das bild(2000x2000) nich auffn bildschirm(800x600) passt...
bildschirm.getGraphics().drawImage(image, x, y, bildschirm); ich vermute es liegt dran, dass das bild(2000x2000) nich auffn bildschirm(800x600) passt...
Antwort 7 von Rangoo
Ich vermute, es liegt daran, dass an deinem Bildschirm keine Grafiken angemeldet sind und deshalb das getGraphics() einen null-Verweis liefert.
Antwort 8 von joto
Wie melde ich die Grafik denn am Bildschirm an? Es klappt ja, solange die Grafik kleiner als der Bildschirm ist und die Grafik komplett auf dem Bildschirm liegt...

