1

There are already some questions about how to set a default file name for a JFileChooser control.

I'm having a few problems with preserving that default filename when switching directories. Right now, when I do that, the original filename I supplied get over overwritten by the path of the new directory itself.

Is there anything can be done in order to avoid this behavior?

Community
  • 1
  • 1
abahgat
  • 13,360
  • 9
  • 35
  • 42

1 Answers1

1

You could add a PropertyListener to the file chooser, and if you get a "directoryChanged" property, set your default file again.

For example:

    JFileChooser chooser = new JFileChooser();
    chooser.addPropertyChangeListener( new PropertyChangeListener() {
      public void propertyChange( PropertyChangeEvent evt )
      {
        if ( evt.getPropertyName().equals( "directoryChanged" ) )
        {
          JFileChooser me = (JFileChooser)evt.getSource(); 
          me.setSelectedFile( new File( "text.txt" ) );
        }
      }
    });

It seems like it might do what you want, but is more a workaround than a proper solution.

Ash
  • 9,296
  • 2
  • 24
  • 32
  • That doesn't seem to work on Windows 7. When I execute that code, the filename field is not updated with the filename I supply, although the corresponding PropertyChangeEvent (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY) is fired. – abahgat Dec 13 '09 at 13:50
  • I was using Vista with default look and feel. What L&F are you using? – Ash Dec 13 '09 at 21:22
  • Hey abahgat, I tried this out with System and Nimbus L&F on Vista and it works OK, so yeah - most likely a win7 thing as you suggest rather than a L&F thing. I will have access to a Windows 7 box on Thursday to try it out, but if you get it solved before then please post a comment or something. – Ash Dec 15 '09 at 09:50
  • 1
    I made a few more tests today, and I actually figured out what is preventing your solution from working. I was calling fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES), and it didn't work because of that. Thank you. – abahgat Dec 15 '09 at 21:54