编程语言
首页 > 编程语言> > 如何在OS X中将java FileDialog接受目录作为其FileType?

如何在OS X中将java FileDialog接受目录作为其FileType?

作者:互联网

当我的应用程序在Mac上运行时,我试图从使用JFileChooser切换到FileDialog,以便它将使用OS X文件选择器.到目前为止,我有以下代码:

    FileDialog fd = new FileDialog(this);
    fd.setDirectory(_projectsBaseDir.getPath());
    fd.setLocation(50,50);
    fd.setFile(?);
    fd.setVisible(true);
    File selectedFile = new File(fd.getFile());

我会为这个问题投入什么?所以我的文件选择器将允许任何目录作为文件选择器的输入(后面的方法已经检查以确保该目录是我想让FileDialog接受任何目录的正确类型的目录).

解决方法:

假设您决定使用FileDialog而不是可移植的JFileChooser,则需要设置系统属性,以便为目录创建FileDialogs.

该物业是apple.awt.fileDialogForDirectories.

所以只需执行以下操作:

System.setProperty("apple.awt.fileDialogForDirectories", "true");
FileDialog fd = new FileDialog(this); 
fd.setDirectory(_projectsBaseDir.getPath()); 
fd.setLocation(50,50);
fd.setVisible(true); 
File selectedFile = new File(fd.getFile());
System.setProperty("apple.awt.fileDialogForDirectories", "false");

应该注意的是,这不是便携式的,但是,因为您正在寻找替换便携式JFileDialog,我认为这不是问题.

标签:look-and-feel,java,macos,filedialog
来源: https://codeday.me/bug/20190928/1825164.html