Search code examples
javaswingdialog

How to make the 'open with' dialog box?


I made a program to search for .txt files.

If I click a file it means that the "open with" dialog box should appear, and that dialog box will contain a list of all installed programs.

I am using this code for searching through the files:

  public File[] finder( String dirName)
  {
      // Create a file object on the directory.
      File dir = new File(dirName);
      // Return a list of all files in the directory.
      return dir.listFiles(new FilenameFilter();
  } 

  public boolean accept(File dir, String filename)
  { 
      return filename.endsWith(".txt");
  } 

What Java code can I use to make the "open with" dialog box appear?


Solution

  • You should use JFileChooser for this. Take a look here:

    //Create a file chooser
    final JFileChooser fc = new JFileChooser();
    ...
    //In response to a button click:
    int returnVal = fc.showOpenDialog(aComponent);
    
    
    public void actionPerformed(ActionEvent e) {
        //Handle open button action.
        if (e.getSource() == openButton) {
            int returnVal = fc.showOpenDialog(FileChooserDemo.this);
    
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fc.getSelectedFile();
                //This is where a real application would open the file.
                log.append("Opening: " + file.getName() + "." + newline);
            } else {
                log.append("Open command cancelled by user." + newline);
            }
       } ...
    }