Quote Originariamente inviata da desiderio Visualizza il messaggio
codice:
                chooser.showOpenDialog(null);
               
                FileNameExtensionFilter filter = new FileNameExtensionFilter("png");
                
                File f[] = (new File(getName()).listFiles(filter);
                String filename=f.getName();
Le ultime due righe di codice so che sono errate ma non capisco come posso dirgli prendi questi file che ho selezionato nelle righe di codice sopra all'errore. Non so qual è il modo giusto di dirglielo.
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.