|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2006
Città: Trieste
Messaggi: 3494
|
[Java] Problema caricamento ImageIcon da altro Package
Salve a tutti!
Ho un problema... Usando Netbeans io ho creato due progetti separati con ovviamente due package diversi. Il primo package contiene solamente una classe MainA.java mentre il secondo package contiene delle classi X.java Y.java e la classica cartella images deve sono contenute delle immagini. In paratica la situazione è questa: - Progetto A nome: progetto.a.grafica -- progetto.a.grafica --- MainA.java - Progetto B nome: progetto.b.code -- progetto.b.code --- X.java --- Y.java --- images ---- smile.png L'URL di MainA in paratica è: Progetto/progetto.a.grafica/src/progetto/a/grafica/MainA.java L'URN di smile.png è: Progetto/progetto.b.code/images/smile.png La mia domanda è... come posso far caricare a MainA.java (package progetto.a.grafica) l'ImageIcon di smile.png che si trova nell'altro package (progetto.b.code)? Ho provato con: Codice:
URL risorsa = progetto.a.grafica.MainA.class.getResource("/progetto.b.code/images/smile.png");
ImageIcon smile = new ImageIcon(risorsa);
o con
URL risorsa = progetto.a.grafica.MainA.class.getResource("progetto.b.code/images/smile.png");
ImageIcon smile = new ImageIcon(risorsa);
o con
Image smile = new Image(this.getClass().getResource("progetto.b.code/images/smile.png"));
__________________
ASUS PB278Q - Corsair Carbide 500R Black - Thermaltake ToughPower 750W - Intel i7-4790 (Cooled by Corsair Liquid H80i) - ASRock Z97 Extreme 4 - MSI GTX 950 Gaming 2G - 16GB Corsair Vengeance Pro 1600MHz - Samsung SSD 840 Pro 256GB ![]() |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2006
Città: Trieste
Messaggi: 3494
|
up
__________________
ASUS PB278Q - Corsair Carbide 500R Black - Thermaltake ToughPower 750W - Intel i7-4790 (Cooled by Corsair Liquid H80i) - ASRock Z97 Extreme 4 - MSI GTX 950 Gaming 2G - 16GB Corsair Vengeance Pro 1600MHz - Samsung SSD 840 Pro 256GB ![]() |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
I package in java non sono altro che cartelle. Quando usi getResource() per caricare un file devi ricordarti di sostituire i punti con degli slash. Quindi progetto.b.code diventa /progetto/b/code/.
Codice:
URL risorsa = progetto.a.grafica.MainA.class.getResource("/progetto/b/code/images/smile.png");
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Apr 2006
Città: Trieste
Messaggi: 3494
|
Quote:
Ho provato con: Codice:
URL risorsa = progetto.a.grafica.MainA.class.getResource("/progetto/b/code/images/smile.png");
e
URL risorsa = progetto.a.grafica.MainA.class.getResource("progetto/b/code/images/smile.png");
Guardando l'indirizzo da Windows, MainA si trova in: C:\Progetto\progetto.a.grafica\src\progetto\a\grafica\MainA.java smile.png si trova in: C:\Progetto\progetto.b.code\images\smile.png
__________________
ASUS PB278Q - Corsair Carbide 500R Black - Thermaltake ToughPower 750W - Intel i7-4790 (Cooled by Corsair Liquid H80i) - ASRock Z97 Extreme 4 - MSI GTX 950 Gaming 2G - 16GB Corsair Vengeance Pro 1600MHz - Samsung SSD 840 Pro 256GB ![]() Ultima modifica di <^MORFEO^> : 28-08-2013 alle 10:52. |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quei percorsi su windows sembrano un po' strani. Nel secondo progetto non mi pare di vedere i percorsi del package. Non è che hai messo la cartella images nel package di default? Non avendo sotto mano il progetto di netbeans è difficile aiutarti. Prova con
Codice:
URL risorsa = progetto.a.grafica.MainA.class.getResource("/images/smile.png");
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2006
Città: Trieste
Messaggi: 3494
|
Quote:
Io ho creato un progetto che ho memorizzato nella cartella C:\Progetto\ Questo progetto è diviso in due parti con due package diversi. - La prima parte è nella cartella C:\Progetto\progetto.a.grafica\ e su Netbeans è quindi tutto memorizzato all'interno del package dal nome progetto.a.grafica - La seconda parte è nella cartella C:\Progetto\progetto.b.code\ e su Netbeans è memorizzato nel package dal nome progetto.b.code All'interno di questo progetto, ho creato una cartella C:\Progetto\progetto.b.code\image dove all'interno è memorizzata la smile.png Io desidero quindi poter importare questo smile.png dalla cartella C:\Progetto\progetto.b.code\image\ nel MainA.java dell'altra parte del progetto e quindi nel package progetto.a.grafica.. Se usassi Codice:
URL risorsa = progetto.a.grafica.MainA.class.getResource("/images/smile.png");
__________________
ASUS PB278Q - Corsair Carbide 500R Black - Thermaltake ToughPower 750W - Intel i7-4790 (Cooled by Corsair Liquid H80i) - ASRock Z97 Extreme 4 - MSI GTX 950 Gaming 2G - 16GB Corsair Vengeance Pro 1600MHz - Samsung SSD 840 Pro 256GB ![]() |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Apr 2006
Città: Trieste
Messaggi: 3494
|
Quote:
__________________
ASUS PB278Q - Corsair Carbide 500R Black - Thermaltake ToughPower 750W - Intel i7-4790 (Cooled by Corsair Liquid H80i) - ASRock Z97 Extreme 4 - MSI GTX 950 Gaming 2G - 16GB Corsair Vengeance Pro 1600MHz - Samsung SSD 840 Pro 256GB ![]() |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Controlla il classpath impostato da netbeans quando viene lanciato il programma. Se ci sono tutti e due i percorsi allora deve funzionare.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:49.










ASUS PB278Q - Corsair Carbide 500R Black - Thermaltake ToughPower 750W - Intel i7-4790 (Cooled by Corsair Liquid H80i) - ASRock Z97 Extreme 4 - MSI GTX 950 Gaming 2G - 16GB Corsair Vengeance Pro 1600MHz - Samsung SSD 840 Pro 256GB 









