Код: Выделить всё
static final File HOME = new File(System.getProperty("user.home"));
static final File CUSTOM = new File(HOME, ".jpilot");
JFileChooser fc = new JFileChooser(new File("TestData", "in")) {
void homeButtonPressed() {
setCurrentDirectory(!getCurrentDirectory().equals(HOME) ? HOME : CUSTOM);
}
};
fc.showOpenDialog(this);
File file = fc.getSelectedFile();
Вот вы видите я имею в виду кнопку:

В поисках подходящего Слушателя я выполнил следующее:
Код: Выделить всё
JFileChooser fc = new JFileChooser(new File("TestData/in"));
System.out.println("FileChooser="+fc.getClass());
System.out.println("FileSystemView="+fc.getFileSystemView().getClass());
for (PropertyChangeListener listener : fc.getPropertyChangeListeners())
System.out.println("PropChListener="+listener);
for (Component component : fc.getComponents())
System.out.println("Component="+component);
for (ComponentListener listener : fc.getComponentListeners())
System.out.println("CompListener="+listener);
PropertyChangeListener dirListener = fc.getPropertyChangeListeners()[3];
System.out.println("dirListener="+dirListener.getClass());
Какое имя мне следует использовать для fc.getPropertyChangeListeners(String имя_свойства)?
Код: Выделить всё
FileChooser=class javax.swing.JFileChooser
FileSystemView=class javax.swing.filechooser.UnixFileSystemView
PropChListener=sun.swing.FilePane[,0,0,0x0,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@17b8a8df,flags=265,maximumSize=,minimumSize=,preferredSize=java.awt.Dimension[width=405,height=135]]
PropChListener=sun.swing.plaf.synth.SynthFileChooserUIImpl$FilterComboBoxModel@141e7727
PropChListener=sun.swing.plaf.synth.SynthFileChooserUI$SynthFCPropertyChangeListener@18d105a
PropChListener=javax.swing.plaf.basic.BasicDirectoryModel@5a761e8e
PropChListener=java.beans.PropertyChangeListenerProxy@46c7373a
Component=javax.swing.JPanel[,0,0,0x0,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@2187d78a,flags=9,maximumSize=,minimumSize=,preferredSize=]
Component=javax.swing.JPanel[,0,0,0x0,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@48610c20,flags=9,maximumSize=,minimumSize=,preferredSize=]
Component=sun.swing.FilePane[,0,0,0x0,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@17b8a8df,flags=265,maximumSize=,minimumSize=,preferredSize=java.awt.Dimension[width=405,height=135]]
Component=javax.swing.JPanel[,0,0,0x0,invalid,layout=javax.swing.BoxLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@2209e9cc,flags=9,maximumSize=,minimumSize=,preferredSize=]
dirListener=class javax.swing.plaf.basic.BasicDirectoryModel
Подробнее здесь: https://stackoverflow.com/questions/784 ... ilechooser