Example usage for javax.swing JFileChooser showSaveDialog

List of usage examples for javax.swing JFileChooser showSaveDialog

Introduction

In this page you can find the example usage for javax.swing JFileChooser showSaveDialog.

Prototype

public int showSaveDialog(Component parent) throws HeadlessException 

Source Link

Document

Pops up a "Save File" file chooser dialog.

Usage

From source file:xtrememp.PlaylistManager.java

public boolean savePlaylistDialog() {
    JFileChooser fileChooser = new JFileChooser(Settings.getLastDir());
    M3uPlaylistFileFilter m3uFileFilter = new M3uPlaylistFileFilter();
    XspfPlaylistFileFilter xspfFileFilter = new XspfPlaylistFileFilter();
    fileChooser.setAcceptAllFileFilterUsed(false);
    fileChooser.addChoosableFileFilter(m3uFileFilter);
    fileChooser.addChoosableFileFilter(xspfFileFilter);
    fileChooser.setMultiSelectionEnabled(false);
    if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
        File file = fileChooser.getSelectedFile();
        FileFilter fileFilter = fileChooser.getFileFilter();
        String fileName = file.getName().toLowerCase();
        if (fileFilter == m3uFileFilter) {
            if (!fileName.endsWith(".m3u")) {
                fileName = fileName.concat(".m3u");
            }//from   www  .jav a 2s .  c om
            try {
                return PlaylistIO.saveM3U(playlist, file.getParent() + File.separator + fileName);
            } catch (PlaylistException ex) {
                logger.error("Can't save playlist in M3U format", ex);
            }
        }
        if (fileFilter == xspfFileFilter) {
            if (!fileName.endsWith(".xspf")) {
                fileName = fileName.concat(".xspf");
            }
            try {
                return PlaylistIO.saveXSPF(playlist, file.getParent() + File.separator + fileName);
            } catch (PlaylistException ex) {
                logger.error("Can't save playlist in XSPF format", ex);
            }
        }
        Settings.setLastDir(file.getParent());
    }
    return false;
}