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

    Jar e immagini, problema visualizzazione

    Salve, ho il seguente problema

    Ho creato un programmino java con eclipse (su win) dove lanciandolo tramite la run del programma, le immagini si vedono, invece, se creo un Runnable Jar file tramite

    File / Export / Java / Runnable Jar File

    Il file jar mi viene creato, il programma funziona ma non vedo le immagini. Ho cercato un po su internet, è un problema comune a molti, ma le soluzioni proposte erano sempre un po troppo "riassuntive" o "veloci" e non ho capito molto
    Mi servirebbe una spiegazione punto per punto, virgola per virgola.

    Path:



    La mia chiamata alle immagini è la seguente.
    codice:
    	private ImageIcon[] icone= {new ImageIcon("src/img/anguria.jpg"), 
    		new ImageIcon ("src/img/campana.jpg"), 
    		new ImageIcon ("src/img/ciliegia.jpg"),
    		new ImageIcon ("src/img/corona.jpg"),
    		new ImageIcon ("src/img/diamante.jpg"), 
    		new ImageIcon ("src/img/fragola.jpg"), 
    		new ImageIcon ("src/img/mela.jpg"), 
    		new ImageIcon ("src/img/sette.jpg"),
    		new ImageIcon ("src/img/stella.jpg")};
    
    e poi in tutt'altra parte del codice uso una setIcon(icona[xxx]) per aggiungerle a un bottone.
    Ho provato anche a usare questa sintassi ma non cambia nulla

    codice:
    private URL[] url;
    private ImageIcon[] image;
    
    		url = new URL[9];
    		url[0] = ClassLoader.getSystemResource("src/img/anguria.jpg");
    		url[1] = ClassLoader.getSystemResource("src/img/campana.jpg");
    		url[2] = ClassLoader.getSystemResource("src/img/ciliegia.jpg");
    		url[3] = ClassLoader.getSystemResource("src/img/corona.jpg");
    		url[4] = ClassLoader.getSystemResource("src/img/diamante.jpg");
    		url[5] = ClassLoader.getSystemResource("src/img/fragola.jpg");
    		url[6] = ClassLoader.getSystemResource("src/img/mela.jpg");
    		url[7] = ClassLoader.getSystemResource("src/img/sette.jpg");
    		url[8] = ClassLoader.getSystemResource("src/img/stella.jpg");
    		
    		icone = new ImageIcon[9];
    		icone[0] = new ImageIcon(url[0]);
    		icone[1] = new ImageIcon(url[1]);
    		icone[2] = new ImageIcon(url[2]);
    		icone[3] = new ImageIcon(url[3]);
    		icone[4] = new ImageIcon(url[4]);
    		icone[5] = new ImageIcon(url[5]);
    		icone[6] = new ImageIcon(url[6]);
    		icone[7] = new ImageIcon(url[7]);
    		icone[8] = new ImageIcon(url[8]);

    Cosa sbaglio? Grazie mille e buon anno

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

    Re: Jar e immagini, problema visualizzazione

    Originariamente inviato da mishima
    codice:
    private ImageIcon[] icone= {new ImageIcon("src/img/anguria.jpg"),
    ......
    Sono tutti path sul file-system "relativi" alla directory "corrente". E vedo una "src" .... che non centra e non centrerà più un bel niente quando la tua applicazione "vivrà" per conto suo ....

    Originariamente inviato da mishima
    codice:
    url[0] = ClassLoader.getSystemResource("src/img/anguria.jpg");
    .....
    Idem .... vedo un "src" che non dovrebbe centrare più un bel nulla quando la applicazione gira per conto suo.

    Metti le immagini in un certo package. Hai ad esempio una classe es. it.mishima.slot.SlotMachine (vedo che hai oscurato il package ....)?? Allora avrai una serie di cartelle it/mishima/slot e questo varrà anche dentro il jar. Metti le immagini in "slot" e poi usa es.

    SlotMachine.class.getResource("anguria.jpg")

    Dal momento che il nome della risorsa non inizia con / viene usato il package di SlotMachine che è it.mishima.slot, quindi verrà cercato lungo il classpath (e se lanci il tuo jar ... è in classpath!) un it/mishima/slot/anguria.jpg

    Chiaro?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    chiaro si, ennesimo problema risolto by andbin

    avevo oscurato il percorso package perchè conteneva dati personali

    codice:
    	private URL[] url;
    	private ImageIcon[] icone;
    
    	public void caricaImg(){
    
    		url = new URL[9];
    		url[0] = SlotMachine.class.getResource("img/anguria.jpg"); 
    		url[1] = SlotMachine.class.getResource("img/campana.jpg");
    		url[2] = SlotMachine.class.getResource("img/ciliegia.jpg");
    		url[3] = SlotMachine.class.getResource("img/corona.jpg");
    		url[4] = SlotMachine.class.getResource("img/diamante.jpg");
    		url[5] = SlotMachine.class.getResource("img/fragola.jpg");
    		url[6] = SlotMachine.class.getResource("img/mela.jpg");
    		url[7] = SlotMachine.class.getResource("img/sette.jpg");
    		url[8] = SlotMachine.class.getResource("img/stella.jpg");
    		
    		icone = new ImageIcon[9];
    		icone[0] = new ImageIcon(url[0]);
    		icone[1] = new ImageIcon(url[1]);
    		icone[2] = new ImageIcon(url[2]);
    		icone[3] = new ImageIcon(url[3]);
    		icone[4] = new ImageIcon(url[4]);
    		icone[5] = new ImageIcon(url[5]);
    		icone[6] = new ImageIcon(url[6]);
    		icone[7] = new ImageIcon(url[7]);
    		icone[8] = new ImageIcon(url[8]);	
    	}
    Le immagini ora sono in it.mishima.slot.img

    Grazie 1000

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.