У меня есть метод в моем приложении под названием "Сохранить Как", который Сохраняет образ моего приложения на компьютере моем в файл. Я использовал JFileChooser, чтобы позволить пользователям выбрать свое желаемое местоположение для того, чтобы сохранить файл. Проблема состоит в том, если пользователь явно не вводит в формате файла, она сохранила файл без расширения. Как у меня могут быть форматы как jpg, png в выпадающем меню Типа файла.
и, как я могу получить расширение из меню отбрасывания Типа файла для сохранения моего файла изображения.
ImageIO.write(image,extension,file);
Наконец, я решил свою проблему: -
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 retrival=m_fileChooser_save.showSaveDialog(null);
if (retrival == m_fileChooser_save.APPROVE_OPTION)
{
String ext="";
String extension=m_fileChooser_save.getFileFilter().getDescription();
if(extension.equals("*.jpg,*.JPG"))
{
ext=".jpg";
}
if(extension.equals("*.png,*.PNG"))
{
ext=".png";
}
if(Extension.equals("*.gif,*.GIF"))
{
ext=".gif";
}
if(extension.equals("*.wbmp,*.WBMP"))
{
ext=".wbmp";
}
if(Extension.equals("*.jpeg,*.JPEG"))
{
EXT=".jpeg";
}
if(extension.equals("*.bmp,*.BMP"))
{
ext=".bmp";
}
Пример фильтра:
import java.io.*;
import java.io.File;
import java.util.*;
import javax.swing.filechooser.FileFilter;
class jpgSaveFilter extends FileFilter
{
public boolean accept(File f)
{
if (f.isDirectory())
{
return false;
}
String s = f.getName();
return s.endsWith(".jpg")||s.endsWith(".JPG");
}
public String getDescription()
{
return "*.jpg,*.JPG";
}
}
Используйте пример JFileChoose.SetFileFilter: http://www.java2s.com/Code/JavaAPI/javax.swing/JFileChoosersetFileFilterFileFilterfilter.htm