Toon posts:

[Java] Uncaught error fetching image

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een Java-applicatie die wat plaatjes gebruikt. De hele boel wordt inclusief plaatjes in een JAR gegooid. Onder OS X werkt de applicatie uitstekend, maar onder Windows krijg ik de foutmelding:

code:
1
2
3
4
5
6
7
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)

Vreemd is dat nergens in de fout een verwijzing naar mijn code staat. Het gaat mis in het volgende stukje code:
Java:
1
2
3
4
5
6
7
8
9
try {   
            URL url = ClassLoader.getSystemResource(File.separator + "org" + File.separator + "terrace" + File.separator + "images" + File.separator + "board.gif");
            boardImage = null;
            MediaTracker m = new MediaTracker(this);
            boardImage = Toolkit.getDefaultToolkit().getImage(url);
            m.addImage(boardImage, 0);
            m.waitForAll();
        }
        catch(Exception e) { System.out.println(e); }
Ik heb al verschillende varianten van met name de eerste regel geprobeerd, bijv. getClass().getResource(), of de eerste File.separator weghalen (die er volgens mij wel moet staan als je uit een JAR leest). Google leverde wel een hoop hits, maar geen werkende oplossing. Iemand een idee :?

[ Voor 5% gewijzigd door Verwijderd op 27-03-2005 16:25 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik moest ff bladeren in ouwe code..
code:
1
2
3
4
5
    final private static Icon CLOSED_ICON = new ImageIcon(
            ColumnsTreeNode.class.getClassLoader().getResource(
                    "com/jph/expertSysteem/database/databaseEditor/resources/FolderTree.gif"
            )
    );

Verwijderd

Topicstarter
Java:
1
URL url = TerraceGUI.class.getClassLoader().getResource(File.separator + "org" + File.separator + "terrace" + File.separator + "images" + File.separator + "board.gif");

De variabele url blijft null. Overigens is de boardImage die ik uiteindelijk wil vullen een BufferedImage, maar dat even terzijde ;)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Dat zal komen omdat de classloader je resource niet kan vinden. Check de documentatie (als je dit niet al hebt gedaan).
Overigens is de boardImage die ik uiteindelijk wil vullen een BufferedImage, maar dat even terzijde ;)
Ik laat je alleen zien hoe je op een correcte manier een resource-url op kunt halen. Waar jij die voor gaat gebruiken is jouw zaak.

[ Voor 19% gewijzigd door Alarmnummer op 27-03-2005 17:09 ]


Verwijderd

Topicstarter
Wel vreemd dan dat de werking van die getResource() per VM verschilt, de OS X-VM heeft er geen probleem mee. Bij een applet heb ik ooit ook eens zoiets gehad, en toen heb ik het alleen opgelost gekregen door getResourceAsStream() te gebruiken. Mooi is anders denk ik dan :?

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Waarom begin je met die separator?
Pagina: 1