JDK-4615460 : Enhancements to Swing/JFileChooser for IDE tools
  • Type: Enhancement
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 5.0
  • Priority: P3
  • Status: Closed
  • Resolution: Won't Fix
  • OS: generic
  • CPU: generic
  • Submitted: 2001-12-18
  • Updated: 2004-08-31
  • Resolved: 2004-08-31
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Name: ca25432			Date: 12/18/2001

Improve File Chooser functionality (1.3.1). The other choosers should have a
high quality L&F too.
Smaller title bars for internal frames. Instantiate components in their own

Add new components to refresh platform but make them extensible so that tools
can override them

JFileChooser could be improved with

1. Fast and simple keyboard navigation, ie when in file-only-selection mode; directory movement involves the keyboard sequence "Tab Enter Shift-Tab"! 

1a. In 1.4 it is still not obvious when focus moves into the file pane
(which is where you most want it to be until you have found the right
directory) - sometimes the pane is selected for scrolling but without
any file being selected , sometimes (if there are
no scrollbars?) moving arrow keys will refuse to select a file but
pressing an initial letter will select one and then arrow keys will work.

1b. Enter key on a directory in the full-details-mode moves to the next
item, unlike in the simple-icon mode where it moves into that directory
After the end of the list, it begins selecting the Size column of the first item, etc. This behavior might seem natural in a spreadsheet, but it certainly feels weird in a file chooser. And Tab in this mode moves within the file pane
rather than out of it which requires Ctrl-Tab, which is technically
correct if as a user you are thinking of what you are doing as moving in
a table and not a filechooser.

1c. The "Up" button etc. should preferably have mnemonics on them;
tabbing into them and pressing Space is clumsy and time-consuming.

1d. Page Up and Page Down in the file pane (icon view) seem to work
weirdly - in one case I see with many files, Page Down just toggles
between two horizontally adjacent icons in the middle of the pane, and
Page Up gets stuck on one icon just above the left one. (Home and End
work sensibly.)

1e. Pressing a letter repeatedly appears to cycle between files and
folders starting with that letter. Fine, but in the case of the files it
does not select them in the file pane if they are not visible in the
current scrolling area (icon view) so you can see what files are around
them. Directories are handled correctly.

2. Renaming a folder in a file chooser is not a common activity, it should be
presented as a separate button I think. However when creating a new folder, called NewFolder, it fails to select it for renaming immediately, which
you would always want I think. Focus/selection should stay on the
renamed folder. Currently it is moved to its new sorting position, which
may be screenfuls away from where the selection currently is, so it
looks like the folder just disappeared.

3. Nice to see that typing "*.gif ENTER" into the File Name textfield
changes the filter, thanks. Odd that you cannot type a new filter into
the filter pulldown however (i.e. it is not a combo box).

4. Most desired feature: smooth autocompletion of filenames and folders
etc. Try out the GNOME (GTK+) filechooser for an example (or Emacs for
that matter, which gets along quite well with no GUI at all). This one
feature would make the filechooser feel vastly more comfortable and make
the business of actually choosing a file much quicker, at least for an
experienced user. Swing has to be consistent with regards to use of Tab,
so probably that is not a good key to use for the purpose. However in
JFileChooser I would like to see: filenames can be completed with the
Space key (with the currently matching completions being displayed in
the file scroll area), and "dir/" or "dir\" move into a directory, and
"../" or "..\" as appropriate move up a directory, and root names
("/home/", "c:\" etc.) switch to the appropriate root.

4a. So after some experimentation it seems that you *can* do some of
this in 1.4. But it gives you no feedback or hint that you can. In the
File Name pane you can type a dir name, "..", "~", a root name, etc.,
and it will mostly do the right thing - nice. But it does not show
completions automatically, and some things behave strangely... for
example while in /, I typed "op Enter" expecting it to either go into
/opt or beep or something - instead it finished the filechooser with /
selected, ignoring the "op" in the File Name field.

4b. Also missing some way to complete directory names; for files at
least you can type "prefix* Enter" to see (but not type) matching names.
And if there are more subdirectories than will fit in the scroll area,
you cannot see the filenames even with such a wildcard mask, so you need
to Shift-Tab back into it anyway.

5. On Linux it seems that sockets (ls -l: srwxrwxr-x) appear in the file
chooser as selectable files, but you cannot actually select them: you
can move the cursor frame over them but they will not be selected.
Somewhat confusing if you happen to be roaming in /tmp/ and moving over
one. If a name does not represent either a folder or a file, it ought
not appear I think.

6. Pressing Alt-I to get the "Look In:" popup does not also post the
popup menu (you need to then press Space to do that).

6a. If you started in "/tmp" and press Up Arrow, it correctly selects
"/" (and displays contents of root directory) but then "/tmp" disappears
from the list, so you cannot change your mind! The contents of the popup
should not change while it is open.

This applies to Metal L&F of JFileChooser.


NOTE: refer to comments for additional information as to what NetBeans would like.

EVALUATION Name: ca25432 Date: 12/18/2001 This feature has been added for Tiger release ====================================================================== The description mixes various requests with actual bugs. Please file separate bug reports for these. ###@###.### 2003-07-22 Features 1e and 2 are fixed by 4654916 and 4887433 ###@###.### 2003-10-24 -------------------------------------------------------- This rfe will be closed. Please refer to separate rfe/bug reports and file new ones for those that aren't already covered. ###@###.### 2004-08-31