Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema con caricamento immagine da JFileChooser o_O

    Questo il frammento di codice interessato:

    codice:
    		JFileChooser fileChooser = new JFileChooser();
    		int result = fileChooser.showOpenDialog (Zoom.this);
    		
    		if (result == JFileChooser.APPROVE_OPTION)
    		{
    			String string = fileChooser.getSelectedFile().getPath();
    			
    			if (string != null)
    			{
    				image = new ImageIcon (getClass().getResource (string));
    				setPreferredSize (new Dimension (image.getIconWidth(), image.getIconHeight()));
    				repaint();
    			}
    		}
    Ogni volta che seleziono un'immagine, viene lanciata una NullPointerException a questa riga: image = new ImageIcon (getClass().getResource (string));, come se l'indirizzo non fosse corretto... qualche idea? o_O

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Per forza... il JFileChooser ti restituisce un percorso assoluto del file, mentre tu stai cercando di utilizzarlo come relativo.

    codice:
    		JFileChooser fileChooser = new JFileChooser();
    		int result = fileChooser.showOpenDialog (Zoom.this);
    		
    		if (result == JFileChooser.APPROVE_OPTION)
    		{
    			String string = fileChooser.getSelectedFile().getPath();
    			
    			if (string != null)
    			{
    				image = new ImageIcon ( string );
    				setPreferredSize (new Dimension (image.getIconWidth(), image.getIconHeight()));
    				repaint();
    			}
    		}
    L'utilizzo di getResource() è d'obbligo quando non si conosce l'esatta posizione di un file, ma solo quella relativa al JAR/Package dell'applicazione... JFileChooser restituisce sempre un path assoluto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Problema con caricamento immagine da JFileChooser o_O

    Originariamente inviato da Dreamer89
    Ogni volta che seleziono un'immagine, viene lanciata una NullPointerException a questa riga: image = new ImageIcon (getClass().getResource (string));, come se l'indirizzo non fosse corretto... qualche idea? o_O
    Non so quante volte l'ho già spiegato qui sul forum .... getResource() ricerca la risorsa usando lo stesso sistema che la JVM usa per trovare le classi.

    Si basa sul "class path" e la specifica della risorsa è un po' "particolare". Se il nome inizia con '/', il nome assoluto della risorsa è esattamente ciò che c'è dopo il '/'. Altrimenti viene usato il package della classe (su cui si è invocato getResource) come base per il nome.

    Quindi getResource() non è da usare con path assoluti del file-system e non è da usare, anche con path relativi, per localizzare file chissà dove in qualunque punto del file-system.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Ok grazie mille ^^

  5. #5

    Re: Re: Problema con caricamento immagine da JFileChooser o_O

    Originariamente inviato da andbin
    Non so quante volte l'ho già spiegato qui sul forum .... getResource() ricerca la risorsa usando lo stesso sistema che la JVM usa per trovare le classi.

    Si basa sul "class path" e la specifica della risorsa è un po' "particolare". Se il nome inizia con '/', il nome assoluto della risorsa è esattamente ciò che c'è dopo il '/'. Altrimenti viene usato il package della classe (su cui si è invocato getResource) come base per il nome.

    Quindi getResource() non è da usare con path assoluti del file-system e non è da usare, anche con path relativi, per localizzare file chissà dove in qualunque punto del file-system.

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.