JFileChooser FileSaveDialog = new JFileChooser(); // instanciates a new filechooser if ( CurrentWorkingDirectory != null ) FileSaveDialog.setCurrentDirectory(CurrentWorkingDirectory); FileSaveDialog.removeChoosableFileFilter(FileSaveDialog.getChoosableFileFilters()[0]); // the filter "all files" has to be removed FileSaveDialog.addChoosableFileFilter(new cImageTIFFileFilter()); // loading the TIFF image file filter FileSaveDialog.addChoosableFileFilter(new cImagePNGFileFilter()); // loading the PNG image file filter /* just some code */ try { if ( FileSaveDialog.getFileFilter().getDescription() == "target image file format" ) { String TargetFilename = FileSaveDialog.getSelectedFile().getAbsolutePath(); if (!(FileSaveDialog.getSelectedFile().getName().toLowerCase().endsWith(".tif") || TargetFilename.toLowerCase().endsWith(".tiff"))) // If the user choses a filename without a proper extension, we simply add it for him :) TargetFilename += ".tif"; /* just some code */ } else if ( FileSaveDialog.getFileFilter().getDescription() == "portable network graphics" ) { String TargetFilename = FileSaveDialog.getSelectedFile().getAbsolutePath(); if (!(FileSaveDialog.getSelectedFile().getName().toLowerCase().endsWith(".png"))) // If the user choses a filename without a proper extension, we simply add it for him :) TargetFilename += ".png"; /* just some code */ } } catch (Exception ex) { cglobal.DisplayErrorMessage("There was an error saving the image."); }