When using java applications, every time I open a dialog box, the starting directory is always my home directory. Is there any way to make it remember the last used directory? Alternately, are there 'improved' java file selection dialogs that allow type-to-search or any of the features that are standard in most other application file selection dialogs?
EDIT: I think the answers posted address the question for writing java applications, but not for a user. Perhaps it's not possible for the user to change the file browser interface, but I'd like to know that. In case it matters, I have a few specific examples in mind (Amazon AWS uploader) but I have observed that behavior in most java applications that use a file browser.
JFileChooser does not remember it. However, Java provides a Preferences API
Preferences prefs = Preferences.userRoot().node(getClass().getName());
JFileChooser chooser = new JFileChooser(prefs.get(LAST_USED_FOLDER,
new File(".").getAbsolutePath()));
int returnVal = chooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
// do something
prefs.put(LAST_USED_FOLDER, chooser.getSelectedFile().getParent());
}
Store the file chooser as a class attribute. When it is re-opened, the following will be preserved.
Is there any way to make it remember the last used directory?
Of course, if you mean persist the state between runs, there are a number of alternative forms of storing the details, and places/ways to store them.
See this answer for an example of storing the bounds of a JFrame
using a Properties
file.
Perhaps it's not possible for the user to change the file browser interface, ..
What 'user'? Do you mean the developer who uses one in an app.?
Maybe what you need is to implement your own file chooser. If that is the case, you might start with the FileBro code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With