MariaMaria ha scritto:
e quando richiamo la classe
FileAllFilter filterJpg = new FileAllFilter(".jpg", "File jpg");
passo all'estensione direttamente il .
Se vuoi passarlo qui, beh, non te lo vieto certo io.
Personalmente io non lo farei (e nemmeno la classe javax.swing.filechooser.FileNameExtensionFilter da Java 6 lo fa, cioè
non vuole il "." iniziale per la/e estensione/i passate al costruttore).
Per un motivo più che altro concettuale: la correttezza del concetto (e poi del controllo) della estensione dipenderebbe da cosa viene passato, insomma, sarebbe error prone. Se per sbaglio viene passato ",jpg", questa non è una estensione.
MariaMaria ha scritto:
Per quanto riguarda la seconda parte
if (scelta == JOptionPane.YES_OPTION) {
ImageIO.write(immagine.getBufferedImage(), estensione, file);
} else {
ImageIO.write(immagine.getBufferedImage(), estensione, file);
}
quest'else non ha senso di esistere?
Non lì nel if della scelta!
Il file lo devi scrivere solo se:
a) Il file non esiste.
oppure
b) Il file esiste
E l'utente ha confermato la sovrascrittura.
Tradotto in pseudo codice:
IF file_esiste THEN
chiedi_conferma_sovrascrittura
IF sovrascrittura_confermata THEN
scrivi_file
END IF
ELSE
scrivi_file
END IF
E invece di ripetere 2 volte "scrivi_file" puoi anche assegnare ad un boolean "scrivi" e poi lo usi, se true, allora scrivi.
P.S. ricorda anche che il 2° parametro di write di ImageIO è il formatName (quindi es. "png") .... non la estensione ("
.png").