在Mac上如何使JFileChooser对目录的选择更加方便?

10

Mac上的JFileChooser在“仅限目录”模式下存在两个严重的、破坏性的问题:

1)你无法使用它创建目录

2)你无法切换驱动器

这对于我的安装程序来说是一个相当大的问题。据我所知,苹果没有提供解决此问题的方法,甚至不能激活非本地目录选择器......因此,唯一的选择是找到一个免费/开源的纯Java替代小部件。

有人知道有这样的吗?


1
这是一个重复的问题: https://dev59.com/_UfRa4cB1Zd3GeqP9ob3 - Tom
除了另一个问题没有涉及“切换驱动器”的部分外,两个问题基本相同。 - Jonik
1
嗯,显然是同一个人问的,相隔三个月... - Jonik
是的,我也是。这次我注册了。 上一个问题没有得到答案(不幸的是,“这是使用性问题”对我没有帮助)。 - Mike Hearn
4个回答

8
使用java.awt.FileDialog怎么样?它显示本地文件选择器,允许创建新文件夹。
public static void main(String[] args) throws UnsupportedLookAndFeelException {
    JFrame frame = new JFrame();
    System.setProperty("apple.awt.fileDialogForDirectories", "true");
    FileDialog d = new FileDialog(frame);
    d.setVisible(true);
}

这是用于选择文件,而非目录。我不认为可以使用该小部件选择目录。 - Mike Hearn
1
我添加了缺失的代码行,使其允许选择文件夹。我在我的商业应用程序中使用它来让用户选择文件夹。这比JFileChooser好多了。 - Steve McLeod
我相信在OS X上,FileDialog的行为已经发生了改变。如果你将apple.awt.fileDialogForDirectories设置为true,那么你实际上禁用了文件的选择,只能选择目录。如果不设置任何系统属性,OS X将允许你选择文件或目录。 - Christopher Schultz

2

2

我使用了带有showDialog方法的JFileChooser,没有出现任何问题。我可以创建目录并将文件保存为我喜欢的名称。如果您仅使用showOpenDialog方法,则无法创建目录。


2

我发现有一个神奇的属性可以设置,使awt文件选择器做正确的事情:

System.setProperty("apple.awt.fileDialogForDirectories", "true");

我模糊地记得在使用 OS X 10.4 时尝试过这个方法,但是它并没有起作用。现在我已经升级到 Leopard,它可以工作了,所以我很高兴。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接