import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.File;

/**
 * @author TESI
 */
public class TestFileChooser {

    public static void main(String[] args)
    {
        File currentDirectory = new File(System.getProperty("user.dir"));
        JFileChooser fileChooser = new JFileChooser(currentDirectory);

        // Dialog in read mode
        int ret = fileChooser.showOpenDialog(null);
        if (ret == JFileChooser.APPROVE_OPTION) {
            System.out.println("File selected to read is: " + fileChooser.getSelectedFile().getAbsolutePath());
        }

        // Dialog in write mode
        ret = fileChooser.showSaveDialog(null);
        if (ret == JFileChooser.APPROVE_OPTION) {
            System.out.println("File selected to write is: " + fileChooser.getSelectedFile().getAbsolutePath());
        }

        // Dialog with text filter in read mode
        fileChooser.addChoosableFileFilter(new TextFilter());
        ret = fileChooser.showOpenDialog(null);
        if (ret == JFileChooser.APPROVE_OPTION) {
            System.out.println("File selected to read is: " + fileChooser.getSelectedFile().getAbsolutePath());
        }

        // Dialog with image filter in write mode
        FileFilter imageFilter = new FileNameExtensionFilter("Image Files",
                ImageIO.getReaderFileSuffixes());
        fileChooser.addChoosableFileFilter(imageFilter);
        fileChooser.setAcceptAllFileFilterUsed(false);
        ret = fileChooser.showSaveDialog(null);
        if (ret == JFileChooser.APPROVE_OPTION) {
            System.out.println("File selected to write is: " + fileChooser.getSelectedFile().getAbsolutePath());
        }
    }
}
