Innanzitutto il valore di ritorno di showOpenDialog andrebbe testato (non ricordo se l'avevo già detto a te o a un altro utente di recente sul forum). Solo se l'utente ha "approvato" la selezione, allora puoi proseguire.
Se l'utente ha approvato, allora usi getSelectedFile() di JFileChooser per ottenere il java.io.File che rappresenta la directory (non può essere ovviamente un file comune se la modalità è DIRECTORIES_ONLY).
Con il File, usi listFiles(filter) per ottenere un array di File. L'array lo dovrai poi ovviamente iterare andando poi a usare ciascun oggetto File.
NOTE:
1) Hai usato FileNameExtensionFilter("png"), è sbagliato!
Guarda la documentazione:
FileNameExtensionFilter(String description, String... extensions)
Come primo parametro DEVI passare una descrizione e poi DEVI passare 1+ estensioni.
2) Non te l'ho detto prima perché non ci ho pensato subito. Se usi ImageIcon per caricare le immagini, ok. Tieni però presente che ImageIcon usa il Toolkit di AWT per il caricamento delle immagini. Il getImage di Toolkit (usato da ImageIcon) applica un meccanismo di "caching" delle immagini.
A parità di url/filename, restituisce sempre lo stesso oggetto Image. Ovvero, tutte le immagini restano memorizzate in memoria.
In sostanza, se dovesse capitare di avere decine e decine di immagini e magari un pochino grosse, è possibile che il tuo heap space si esaurisca. Questo è un aspetto che devi valutare ed eventualmente usare alternative.


Rispondi quotando