Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    NullPointerException con ImageIO.Read

    codice:
    public Image[][] enemynav()
    	{
    		try{b=new File(".\\a.jpg");} catch(Exception e){System.out.print("Not Found\n");}
    		int i;
    		try{img=ImageIO.read(b);} catch(IOException e){System.out.print("Not found");}
    		for (i=0;i<10;i++);
    		{
    			for(int j=0;j<10;j++)
    			{
    				a[i][j]=img;
    			}
                     return a;
    		}
    Sto cercando di creare un array bidimensionale di immagini. Il problema è che quando eseguo dopo aver compilato ottengo un NullPointerException.
    Ciò è dovuto alla riga img=ImageIO.read(b); ma non so spiegarmi il perchè. Spero che qualcuno ci riesca, grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: NullPointerException con ImageIO.Read

    Originariamente inviato da rossirule2012
    codice:
    public Image[][] enemynav()
    	{
    		try{b=new File(".\\a.jpg");} catch(Exception e){System.out.print("Not Found\n");}
    		int i;
    		try{img=ImageIO.read(b);} catch(IOException e){System.out.print("Not found");}
    		for (i=0;i<10;i++);
    		{
    			for(int j=0;j<10;j++)
    			{
    				a[i][j]=img;
    			}
                     return a;
    		}
    Sto cercando di creare un array bidimensionale di immagini. Il problema è che quando eseguo dopo aver compilato ottengo un NullPointerException.
    Ciò è dovuto alla riga img=ImageIO.read(b); ma non so spiegarmi il perchè. Spero che qualcuno ci riesca, grazie
    Sei sicuro che sia quella la causa? La documentazione non la cita: http://docs.oracle.com/javase/7/docs...(java.io.File)

    A prima vista l'unica cosa in quel metodo che sembra poter sollevare una NullPointerException è l'uso dell'array, è inizializzato correttamente?
    effeffe

  3. #3
    Nel caso in cui la new File sollevi un'eccezione stampi un messaggio di errore, ma non esci dalla funzione, per cui l'esecuzione prosegue con b impostato a null.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Si ma l'eccezione in new File non si solleva perchè non stampa sul terminale "Not Found".

    Il file esiste nella cartella del sorgente e del .class quindi il File viene creato.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da MItaly
    Nel caso in cui la new File sollevi un'eccezione stampi un messaggio di errore, ma non esci dalla funzione, per cui l'esecuzione prosegue con b impostato a null.
    In quel caso dovrebbe essere sollevata un'IllegalArgumentException però no? (a meno che in Java 6 il comportamento fosse differente)
    effeffe

  6. #6
    No ma il problema è che il file c'è , l'unica eccezione che si solleva è dopo, ma non capisco come aggiustare il codice in IO.read.

  7. #7
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Posta tutto il codice e l'exception

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  8. #8
    Il codice completo è quello postato.
    Il problema è che non carica l'immagine nella variabile img.
    Forse non sono stato abbastanza chiaro mi dispiace.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    147
    Prova così:

    codice:
    BufferedImage img = ImageIO.read(getClass().getResource("a.jpg"));
    Se a.jpg è tra i sorgenti non è necessario il .\\

  10. #10
    Continua a lanciare quell'eccezione quando voglio inserire l'immagine nell'array

    codice:
    a[i][j]=img;

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.