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

    apllet, caricare immageicon dal file jar

    Ciao a tutti,

    sono nuovo e da poco mi sono avvicinato a java.
    Premetto che prima di scrivere questo post ho cercato e provato per parecchi giorni, ma purtroppo senza alcun esito positivo.

    Come si vede dal titolo della discussione il problema è stato già trattato da molti, io ho provato tutto il possibile in particolare il seguente:

    1. progetto java realizzato con NetBeans (os windows)
    2. nome progetto "ProvaApplet"
    3. se lo lancio dal browser mi da "nullpointexception" quando stampo a console l'URL
    4. la classe dell'applet sta in "ProvaApplet/src/provaapplet"
    5. le immagini stanno in "ProvaApplet/src/provaapplet/images" e sono .gif
    6. una volta compilato e pulito prendo il file ProvaApplet.jar che trovo nella cartella "ProvaApplet/dist" e lo metto in una cartella separata dove c'è il file html che contiene la dichiarazione dell'applet.
    7. il codice riguardante la dichiarazione dell'applet del file html è il seguente
    codice:
    <applet 
    		code="provaapplet.ProvaApplet.class"
    		archive="ProvaApplet.jar"
    		width=640
    		height=480>
    	</applet>
    8. il codice della classe provaapplet è il seguente
    codice:
    public class ProvaApplet extends javax.swing.JApplet {
        
        public void init() {
            
            String[] fileImg = { "provaapplet/images/img1.gif",
                                      "provaapplet/images/img2.gif",
                                      "provaapplet/images/img3.gif",
                                      "provaapplet/images/img4.gif" };
            
            ClassLoader cldr = this.getClass().getClassLoader();
            ImageIcon[] arr_imgicon = new ImageIcon[4];
            for (int i=0; i<arr_imgicon.length; i++)
            {
              java.net.URL imageURL = cldr.getResource(fileImg[i]);
              System.out.println(imageURL.toString()); //quì si crea il null point exception
              arr_imgicon[i] = new ImageIcon(imageURL); //oppure quì se tolgo quello sopra
            }
              //.....
       }
         //.....
       }
    Il progetto gira bene se lanciato da NetBeans.
    Se lancio il file html l'applet non si carica e ricevo l'errore d'eccezzione.
    Se qualcuno ha dei consigli sono graditissimi!!!!

    Grazie...

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    23
    io lo uso con i JButton, ad esempio, ma tu puoi assegnarlo ad ogni oggetto che possa contenere icone:

    JButton bottoneDiEsempio;
    Image immEsempio;

    bottoneDiEsempio.setIcon(new ImageIcon(immEsempio= getImage(getCodeBase(), "icons/tool_logo.png")));

  3. #3
    Originariamente inviato da David88
    io lo uso con i JButton, ad esempio, ma tu puoi assegnarlo ad ogni oggetto che possa contenere icone:

    JButton bottoneDiEsempio;
    Image immEsempio;

    bottoneDiEsempio.setIcon(new ImageIcon(immEsempio= getImage(getCodeBase(), "icons/tool_logo.png")));
    Ciao grazie per la risposta, ho provato anche così:
    codice:
    arr_imgicon[i] = new ImageIcon(getCodeBase(),fileImg[i]);
    ma nisba!
    da un eccezzione di accesso per i diritti,
    se metto la cartella con le immagini nel giusto path dove c'è il file html allora funziona, ma a mè interessa caricare le immagini dal file jar.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Devi procedere esattamente come se si trattasse di un archivio jar, e non di un applet, ovvero caricando la risorsa con getResource(...)

    codice:
    import javax.swing.*;
    
    /**
     *
     * @author Andrea
     */
    public class JAppletImage extends JApplet {
        
        private String path = "images/img.jpg";
        private JLabel label;
        
        public void init() {
            label = new JLabel(new ImageIcon(this.getClass().getResource(path)));
            this.add(label);
        }
        
        public static void main (String[] args) {
            System.out.println("This is a JApplet - Quitting");
            System.exit(0);;
        }
    
    }
    il mio jar contiene la classe compilata e la cartella images con all'interno il file img.jpg e niente altro.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Grazie Andrea1979, ho seguito il tuo consiglio, ma purtroppo ho sempre lo stesso errore: nullpoint exception sulla riga:
    codice:
    label = new JLabel(new ImageIcon(this.getClass().getResource(path)));
    Ho creato un progetto nuovo in NetBeans ho aggiunto la classe che tu hai postato e la cartella "images" con il file jpg, all'interno del package.
    Ora mi sorge un dubbio: mi sa che non sto facendo la giusta procedura per la creazione del file jar, lo sto facendo fare a NetBeans, partendo da un progetto "Java Application", evidentemente non è il modo corretto, a qualcuno risulta?
    Intanto provo a creare il file jar manualmente...

  6. #6
    mannaggia che fatica, ora il problema l'ho risolto!
    Non funzionava perchè i file immagine che avevo nella cartella "images" (la quale giustamente si trovava all'interno del package), avevano in maiuscolo l'estensione. Non so perchè, non me ne ero accorto e non ci avevo fatto caso, mentre nel codice il case dell'estensione era minuscolo ; meno male che oggi osservando le cose mi sono ricordato che il linguaggio Java è "case sensitive" una delle prime cose che ho letto quando mi sono avvicinato a questo grande linguaggio.

    Grazie comunque spero che possa essere d'aiuto per qulcun'altro.

    Ciao

    PS: Comunque con NetBeans la procedura per la creazione del file jar era corretta!

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.