Originariamente inviato da vespaslight125
P.s. non so nemmeno come far visualizzare più estensioni nel menù...con l'import mi bastava sovrascrivere il metodo getDescription però ritorna solo una stringa non più di una...
Di "user choosable file filters" ne puoi aggiungere quanti ne vuoi tramite il metodo addChoosableFileFilter() (scusa .. come hai fatto finora?).
Quando ritorni dalla selezione, con getFileFilter() sai quale filtro è selezionato. A quel punto hai 2 strade: o testi i reference, se hai tenuto i singoli reference dei tuoi filtri oppure aggiungi qualcosa alla tua classe in modo che ti dica la estensione.
Se hai fatto una tua classe ovviamente non posso sapere come l'hai implementata. Perché si potrebbe farla specifica, cioè con le estensioni "cablate" nel sorgente oppure generica e riutilizzabile come FileNameExtensionFilter.
Non so se mi sono spiegato, le due soluzioni potrebbero essere (io faccio l'esempio con FileNameExtensionFilter):
[parte comune]
codice:
FileFilter gifFilter = new FileNameExtensionFilter (.....);
FileFilter jpgFilter = new FileNameExtensionFilter (.....);
chooser.addChoosableFileFilter (gifFilter);
chooser.addChoosableFileFilter (jpgFilter);
poi quando è approvata la selezione:
A)
codice:
FileFilter selectedFilter = chooser.getFileFilter ();
if (selectedFilter == gifFilter) {
// hai selezionato gif
} else if (selectedFilter == jpgFilter) {
// hai selezionato jpg
}
B)
codice:
FileFilter selectedFilter = chooser.getFileFilter ();
if (selectedFilter instanceof FileNameExtensionFilter)
{
FileNameExtensionFilter filt = (FileNameExtensionFilter) selectedFilter;
String ext = filt.getExtensions()[0]; // scelgo la prima estensione
}