Puede que se de el caso de que encuentres algún fallo en tu código o trabajo, recuerda probar siempre en un ambiente de testing antes aplicar el código al proyecto final.
Solución:
Finalmente, resolví mi propio problema:
JFileChooser fc = new JFileChooser("C:/");
fc.addChoosableFileFilter(new JPGSaveFilter());
fc.addChoosableFileFilter(new JPEGSaveFilter());
fc.addChoosableFileFilter(new PNGSaveFilter());
fc.addChoosableFileFilter(new GIFSaveFilter());
fc.addChoosableFileFilter(new BMPSaveFilter());
fc.addChoosableFileFilter(new WBMPSaveFilter());
int retrieval = fc.showSaveDialog(null);
if (retrieval == JFileChooser.APPROVE_OPTION)
String ext = "";
String extension = fc.getFileFilter().getDescription();
if (extension.equals("*.jpg,*.JPG"))
ext = ".jpg";
else if (extension.equals("*.png,*.PNG"))
ext = ".png";
else if (extension.equals("*.gif,*.GIF"))
ext = ".gif";
else if (extension.equals("*.wbmp,*.WBMP"))
ext = ".wbmp";
else if (extension.equals("*.jpeg,*.JPEG"))
ext = ".jpeg";
else if (extension.equals("*.bmp,*.BMP"))
ext = ".bmp";
Filtro de ejemplo:
package example
import java.io.File;
import javax.swing.filechooser.FileFilter;
class JPGSaveFilter extends FileFilter
@Override
public boolean accept(File f)
if (f.isDirectory())
return false;
String s = f.getName().toLowerCase();
return s.endsWith(".jpg");
@Override
public String getDescription()
return "*.jpg,*.JPG";
Prepare los filtros del selector de archivos:
jFileChooser.addChoosableFileFilter(new FileNameExtensionFilter("File X (.xxx)", "xxx"));
jFileChooser.addChoosableFileFilter(new FileNameExtensionFilter("File Y (.yyy)", "yyy"));
jFileChooser.addChoosableFileFilter(new FileNameExtensionFilter("File Z (.zzz)", "zzz"));
// set default type
jFileChooser.setFileFilter(jFileChooser.getChoosableFileFilters()[0]);
// set default file
jFileChooser().setSelectedFile(defaultFile);
Después de aprobar la validación
//Add extension to Selected file
File file = new File(jFileChooser().getSelectedFile().getCanonicalPath() + "." + ((FileNameExtensionFilter) jFileChooser().getFileFilter()).getExtensions()[0]);
Podría ser una buena idea validar si el archivo seleccionado viene con extensión.
Si conservas alguna cuestión y capacidad de aclarar nuestro crónica eres capaz de dejar una anotación y con placer lo ojearemos.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)