import java.awt.Dimension;
import java.awt.EventQueue;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Arrays;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.WindowConstants;

public class FileChooserTest {

    public static void main(String[] args) {
        /*Arrays.stream(UIManager.getInstalledLookAndFeels()).filter(info -> "Nimbus".equals(info.getName())).findFirst().ifPresent(info -> {
            try {
                UIManager.setLookAndFeel(info.getClassName());
            } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                //
            }
        });*/

        JFrame frame = new JFrame("JFileChooser test");
        frame.setPreferredSize(new Dimension(600, 600));
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        JFileChooser jfc = new JFileChooser();
        jfc.setDialogType(JFileChooser.CUSTOM_DIALOG);
        jfc.setControlButtonsAreShown(false);
        jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        jfc.addPropertyChangeListener(new PropertyChangeListener() {
            public void propertyChange(PropertyChangeEvent evt) {
                if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(evt.getPropertyName())) {
                    System.out.println(String.format("Value changed: %s -> %s", evt.getOldValue(), evt.getNewValue()));
                }
            }
        });
        frame.add(jfc);
        frame.pack();
        EventQueue.invokeLater(() -> frame.setVisible(true));
    }
} 