import java.awt.*; import java.awt.event.*; import java.io.*; /** * @author dgreen * Demonstrate the use of a FileDiaglog and a FileName filter * * See bug notice why this is not that useful down below in "accept()" * method. */ public class FileDialogExample extends Frame implements ActionListener, WindowListener, FilenameFilter { /** * Constructor for FileDialogExample. */ public FileDialogExample() { super(); FileDialog fdOpen = new FileDialog(this, "Choose a File"); fdOpen.setDirectory("."); fdOpen.setFile( "" ); // bug: this filter only "lasts" for current directory // in Linux and fails to work at all in Windows // as documented in JDK documentation -- bummer fdOpen.setFilenameFilter( this ); fdOpen.show(); } public static void main(String[] args) { FileDialogExample theApp = new FileDialogExample(); } public boolean accept(File dir, String name) { File file = new File(dir, name); if(file.isDirectory()) { return true; } else if(file.isFile() && (name.endsWith(".java"))) { return true; } else { return false; } } /** * @see java.awt.event.ActionListener#actionPerformed(ActionEvent) */ public void actionPerformed(ActionEvent arg0) { } /** * @see java.awt.event.WindowListener#windowOpened(WindowEvent) */ public void windowOpened(WindowEvent arg0) { } /** * @see java.awt.event.WindowListener#windowClosing(WindowEvent) */ public void windowClosing(WindowEvent arg0) { dispose(); System.exit(0); } /** * @see java.awt.event.WindowListener#windowClosed(WindowEvent) */ public void windowClosed(WindowEvent arg0) { } /** * @see java.awt.event.WindowListener#windowIconified(WindowEvent) */ public void windowIconified(WindowEvent arg0) { } /** * @see java.awt.event.WindowListener#windowDeiconified(WindowEvent) */ public void windowDeiconified(WindowEvent arg0) { } /** * @see java.awt.event.WindowListener#windowActivated(WindowEvent) */ public void windowActivated(WindowEvent arg0) { } /** * @see java.awt.event.WindowListener#windowDeactivated(WindowEvent) */ public void windowDeactivated(WindowEvent arg0) { } }