Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-08-2013, 11:23   #1
<^MORFEO^>
Senior Member
 
L'Avatar di <^MORFEO^>
 
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"));
ma niente.. probabilmente sbaglio l'indirizzo o l'approccio per ottenere l'immagine...
__________________
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
<^MORFEO^> è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2013, 22:17   #2
<^MORFEO^>
Senior Member
 
L'Avatar di <^MORFEO^>
 
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
<^MORFEO^> è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2013, 22:32   #3
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
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");
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2013, 10:33   #4
<^MORFEO^>
Senior Member
 
L'Avatar di <^MORFEO^>
 
Iscritto dal: Apr 2006
Città: Trieste
Messaggi: 3494
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
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");
Non funziona...

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");
ma niente, risorsa è sempre NULL

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.
<^MORFEO^> è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2013, 15:32   #5
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
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");
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2013, 23:17   #6
<^MORFEO^>
Senior Member
 
L'Avatar di <^MORFEO^>
 
Iscritto dal: Apr 2006
Città: Trieste
Messaggi: 3494
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
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");
Provo a spiegarmi diversamente..
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");
MainA.java andrebbe a cercarmi smile.png nella cartella image all'interno del suo package progetto.a.grafica e quindi dentro la cartella C:\Progetto\progetto.a.grafica\image\ che non esiste...
__________________
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
<^MORFEO^> è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2013, 07:36   #7
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da <^MORFEO^> Guarda i messaggi
Se usassi
Codice:
URL risorsa = progetto.a.grafica.MainA.class.getResource("/images/smile.png");
MainA.java andrebbe a cercarmi smile.png nella cartella image all'interno del suo package progetto.a.grafica e quindi dentro la cartella C:\Progetto\progetto.a.grafica\image\ che non esiste...
Il classloader vede comunque tutti i file di tutti i package. Anche se smile.png fosse in un file jar separato in una cartella montata da una server remoto funzionerebbe comunque. L'importante è che il package sia nel classpath del programma e che il percorso sia giusto.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2013, 11:33   #8
<^MORFEO^>
Senior Member
 
L'Avatar di <^MORFEO^>
 
Iscritto dal: Apr 2006
Città: Trieste
Messaggi: 3494
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
Il classloader vede comunque tutti i file di tutti i package. Anche se smile.png fosse in un file jar separato in una cartella montata da una server remoto funzionerebbe comunque. L'importante è che il package sia nel classpath del programma e che il percorso sia giusto.
NullPointerException perchè lui va a cercare la smile.png in C:\Progetto\progetto.a.grafica\image\ che non esiste essendo che l'immagine si trova in C:\Progetto\progetto.b.code\image ...
__________________
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
<^MORFEO^> è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2013, 11:55   #9
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
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.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Smart TV QLED da 75 pollici a 559€ su Am...
Nello Spazio l'evoluzione cambia rotta: ...
Il fondatore di Waymo critica l'FSD di T...
Rincari GPU: NVIDIA alza il costo della ...
Robot tagliaerba a 699€ su Amazon: un Se...
Nova Launcher cambia proprietà: perché t...
Stop a TikTok e Instagram dopo le 21: pa...
A Seul in arrivo nuovi incentivi per aut...
7 offerte nuove di zecca Amazon, altre a...
Una giornata di lavoro con l'IA consuma ...
'Non fate usare ChatGPT ai vostri cari':...
Un display che si allunga fino al 200% s...
X rende open source il suo algoritmo: si...
Ryanair si prepara a un'estate da record...
Robot aspirapolvere da 199€ su Amazon: D...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:49.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v