G
Guest
Gast
So und zwar folgendes Problem.
Ich möchte gerne ein Bild laden welches ich nachher via Paintmethode auf einem Window zeichne...
Sobald auf dieses Bild (Welches vom Typ Image ist und ich mir über die getImage() Methode aus der Klasse Toolkit besorgt habe)dann aber zugegriffen (sei es duch den MediaTracker oder duch drawImage) wird bekomme ich eine schöne Exception die wie folgt aussieht:
Das schönste daran ist aber worüber ich auch schonmal hier im Forum öfters gestoßen bin, dass ich diese Exception überhaupt nicht abfangen kann. Sie wird einfach so geworfen, als wenn irgendwo in der Methode getImage() z.B. über nen Output die die Daten dieser aufgetretenden Exception ausgegeben wird....
Was man auch daran erkennen kann, das die auftretende Exception nicht über System.exit() (So wie sonst meistens oder???) Mein Programm vorsichtshalber zum Stillstand bringt, sondern eben nur deren Daten ausgibt
Naja, das Bild ist aber auf jedenfall vorhanden aber sieht selbst...
Die Konstante mit dem Pfad zum Bild
Hier besorge ich mri das Bild
.....
Irgendwo im Nirgendwo, die paint-Methode, die aber eigentlich hier nicht wichtig ist, da die JVM schon beim Bildzugriff duch den MediaTracker
die Exception wirft...
Wenn diese gerade genannte Zeile auskommentiert ist, dann wird das erste mal natürlich die Exception in der Paint-Methode
geworfen..
Ich setze den Absoluten Pfad in einfache Hochomma, da es sein könnte, das ein Directory aus 1 - n Blanks besteht und ich mir nicht sicher bin ob er das sonst denoch als einen Pfad erkennt, was ich aber eigentlich nicht denke. Hatte das Problem bisher nur bei der execute() Methode von Runtime, wo er den 2. Teil eines Directory (das aus einem Blank bestand) als Parameter/Option angesehen hat, was ja eigentlich auch ganz logisch ist.
Naja habe dies aber auch schon mit relativem Pfad und ohne hochkommas ausprobiert, was mir aber auch nicht weiter hilft.
Wie man sehen kann, ist es äußerst unwahrscheinlich, dass das Bild nicht existiert aber auf Basis dessen dennoch ein Image konstruiert wird, da dies alles überprüft wird....
Hoffe ihr könnt mir helfen
Ich möchte gerne ein Bild laden welches ich nachher via Paintmethode auf einem Window zeichne...
Sobald auf dieses Bild (Welches vom Typ Image ist und ich mir über die getImage() Methode aus der Klasse Toolkit besorgt habe)dann aber zugegriffen (sei es duch den MediaTracker oder duch drawImage) wird bekomme ich eine schöne Exception die wie folgt aussieht:
Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(Unknown Source)
at sun.awt.image.URLImageSource.getDecoder(Unknown Source)
at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)
Das schönste daran ist aber worüber ich auch schonmal hier im Forum öfters gestoßen bin, dass ich diese Exception überhaupt nicht abfangen kann. Sie wird einfach so geworfen, als wenn irgendwo in der Methode getImage() z.B. über nen Output die die Daten dieser aufgetretenden Exception ausgegeben wird....
Was man auch daran erkennen kann, das die auftretende Exception nicht über System.exit() (So wie sonst meistens oder???) Mein Programm vorsichtshalber zum Stillstand bringt, sondern eben nur deren Daten ausgibt
Naja, das Bild ist aber auf jedenfall vorhanden aber sieht selbst...
Code:
private final String file = "icons/logo.jpg";
Die Konstante mit dem Pfad zum Bild
Code:
MediaTracker loadimage = new MediaTracker(this);
try
{
java.io.File image = new java.io.File(file);
if(image.exists()&&image.isFile()){
background = Toolkit.getDefaultToolkit().getImage(getClass().getResource("'" + image.getAbsolutePath() + "'"));
loadimage.addImage(background,0);
loadimage.waitForAll();
}//if end
}//try end
catch(Exception any)
{
ErrorLog.writeOutError("
}//catch end
Code:
public void paint(Graphics g)
{
try{
if(background!=null){
g.drawImage(background,100,100,this);
}//try end
}catch(Exception any){
any.printStackTrace();
}//catch end
g.setColor(Color.BLACK);.......................
Irgendwo im Nirgendwo, die paint-Methode, die aber eigentlich hier nicht wichtig ist, da die JVM schon beim Bildzugriff duch den MediaTracker
Code:
loadimage.waitForAll();
Wenn diese gerade genannte Zeile auskommentiert ist, dann wird das erste mal natürlich die Exception in der Paint-Methode
Code:
g.drawImage(background,100,100,this);
Ich setze den Absoluten Pfad in einfache Hochomma, da es sein könnte, das ein Directory aus 1 - n Blanks besteht und ich mir nicht sicher bin ob er das sonst denoch als einen Pfad erkennt, was ich aber eigentlich nicht denke. Hatte das Problem bisher nur bei der execute() Methode von Runtime, wo er den 2. Teil eines Directory (das aus einem Blank bestand) als Parameter/Option angesehen hat, was ja eigentlich auch ganz logisch ist.
Naja habe dies aber auch schon mit relativem Pfad und ohne hochkommas ausprobiert, was mir aber auch nicht weiter hilft.
Wie man sehen kann, ist es äußerst unwahrscheinlich, dass das Bild nicht existiert aber auf Basis dessen dennoch ein Image konstruiert wird, da dies alles überprüft wird....
Hoffe ihr könnt mir helfen