Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    residenza
    Firenze
    Messaggi
    260

    Generare errore se l'immagine non esiste

    Salve, sono alla presa con le immagini di un'applicazione desktop.

    Vorrei fare in modo che se l'immagine che carico non esiste, si debba creare un errore e l'applicazione non parte.

    Le immagini personalmente le carico con la classica
    codice:
    ImageIcon icona = new ImageIcon("percorso relativo")

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Fix87 Visualizza il messaggio
    Vorrei fare in modo che se l'immagine che carico non esiste, si debba creare un errore e l'applicazione non parte.

    Le immagini personalmente le carico con la classica
    codice:
    ImageIcon icona = new ImageIcon("percorso relativo")
    Innanzitutto se la immagine fa parte in modo fisso della applicazione, usare un percorso sul file-system (e oltretutto relativo alla directory "corrente") non è certo l'approccio migliore. Sarebbe meglio trattarla come "risorsa" e usare i getResource/getResourceAsStream forniti dal framework.

    Ad ogni modo, se hai un pathname sul file-system, nessuno ti vieta di usare File e il suo exists() (o in modo più preciso isFile() ). Questo vale in generale.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    residenza
    Firenze
    Messaggi
    260
    Dove posso trovare sulla documentazione ufficiale una sezione che parla delle "risorse", voglio approfondire per bene questo argomento.
    Per quanto riguarda la struttura i sorgenti sono all'interno di un file .jar mentre le immagini contenute in una cartella img posizionata allo stesso livello del .jar, quindi in fin dei conti la posizione è fissa e solo se viene spostato il fil .jar o la cartella delle immagini, queste non vengono visualizzate (ecco perché voglio inserire la gestione di questo "errore")

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2011
    residenza
    Firenze
    Messaggi
    260
    Ho fatto una classe veloce di prova e non capisco perché non mi vede l'immagine.

    codice:
    public class Frame extends JFrame{
       
       private JLabel label1;
       private Icon mail;
    
       public Frame(){
          super("Finestra di prova");
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          setLocationRelativeTo(null);
          setLayout(new FlowLayout());
          setResizable(false);
    
          try{
             mail = new ImageIcon(getClass().getResource("./img/mail.gif"));
          }
          catch(NullPointerException e){
             System.out.println("Immagine non trovata");
             System.exit(1);
          }
          label1 = new JLabel(mail);
          getContentPane().add(label1);
          setVisible(true);
       }
    
       public static voi main(String[] args){
          new Frame();
       }
    }
    La cartella img contenente mail.gif è allo stesso livello delle cartelle src e bin
    Scrivo male il path relativo?

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    img dovrebbe stare dentro src, in modo che quando esporti il jar te la porti dietro.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2011
    residenza
    Firenze
    Messaggi
    260
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    img dovrebbe stare dentro src, in modo che quando esporti il jar te la porti dietro.
    Ok grazie mille!

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.