16

I would like my JFileChooser to start in details view, instead of the "List" view that it starts in. How do you do that?

Daniel Kaplan
  • 62,768
  • 50
  • 234
  • 356

2 Answers2

24

You can get the Action from the ActionMap:

JFrame frame = new JFrame();
JFileChooser  fileChooser = new JFileChooser(".");
Action details = fileChooser.getActionMap().get("viewTypeDetails");
details.actionPerformed(null);
fileChooser.showOpenDialog(frame);
camickr
  • 321,443
  • 19
  • 166
  • 288
  • Nice, that's probably a better way to do it. Actually, maybe you can help me with my problem over here: http://stackoverflow.com/questions/16229526/how-do-you-remove-the-ctrlc-action-on-a-jfilechooser#comment23321430_16285866 – Daniel Kaplan Apr 30 '13 at 05:38
  • is this still the solution in 2021? or is there a better or other way how to do it? – Strubbl Jun 10 '21 at 21:23
2

This is a little tricky and probably not officially supported, but I found out how to do this. First, you need to get the FilePane that the JFileChooser has. The only way I know how to do that is to traverse its components and then do an instanceof FilePane until you get it. Then this will start in Details view:

    if (root instanceof FilePane) {
        FilePane filePane = (FilePane) root;
        Action viewTypeAction = filePane.getViewTypeAction(FilePane.VIEWTYPE_DETAILS);
        viewTypeAction.actionPerformed(null);
    }
Daniel Kaplan
  • 62,768
  • 50
  • 234
  • 356