How to make the 'open with' dialog box?

2020-04-01 06:35发布

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?

3条回答
够拽才男人
2楼-- · 2020-04-01 06:39

You can make your own dialog for that purpose .And for coming how to get program list .on windows you can use registry . see this link Detecting installed programs via registry

and also check how to acces registry via java read/write to Windows Registry using Java

查看更多
Bombasti
3楼-- · 2020-04-01 06:48

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

To my knowledge, there is nothing in the J2SE like that. OTOH the Desktop API can open a File in whatever app. is the default consumer.

查看更多
啃猪蹄的小仙女
4楼-- · 2020-04-01 07:01

You should use FileChooser 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);
        }
   } ...
}
查看更多
登录 后发表回答