JFileChooser для каталогов на Mac: как заставить его не отстой?

У JFileChooser в режиме «только каталоги» на Mac есть две серьезные проблемы:

1) С его помощью нельзя создавать каталоги

2) Нельзя переключать приводы

Это довольно большая проблема для моего установщика. Насколько я могу судить, Apple не предлагает способа обойти эту проблему, вы даже не можете активировать средство выбора неродных каталогов ... так что единственной альтернативой является поиск бесплатного / открытого виджета, заменяющего чистую Java.

Кто-нибудь знает об одном?


person Mike Hearn    schedule 31.08.2009    source источник
comment
Это дубликат: stackoverflow.com/questions/845403/   -  person Tom    schedule 31.08.2009
comment
... за исключением того, что другой вопрос не касается части приводов коммутатора.   -  person Jonik    schedule 31.08.2009
comment
Хм, оба были заданы одним и тем же человеком, очевидно, с интервалом в 3 месяца ...   -  person Jonik    schedule 31.08.2009
comment
Да, это тоже был я. Я зарегистрировался на этот раз. Последний вопрос умер без ответа (к сожалению, юзабилити мне не помогает).   -  person Mike Hearn    schedule 01.09.2009


Ответы (4)


А как насчет использования 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);
}
person Steve McLeod    schedule 31.08.2009
comment
Это для выбора файлов, а не каталогов. Я не думаю, что можно выбрать каталог с этим виджетом. - person Mike Hearn; 01.09.2009
comment
Я добавил недостающую строку, чтобы она позволяла выбирать папки. Я использую это в своем коммерческом приложении, чтобы пользователи могли выбирать папки. Это намного лучше, чем JFileChooser - person Steve McLeod; 01.09.2009
comment
Я считаю, что поведение FileDialog в OS X изменилось. Если вы установите apple.awt.fileDialogForDirectories на true, вы фактически отключите выбор файлов, поэтому можно будет выбирать только каталоги. Не устанавливая никаких системных свойств, OS X позволит вам выбирать файлы или каталоги. - person Christopher Schultz; 17.01.2019

JFileChooser может видеть внешние диски. Перейдите из корневого каталога в / Volumes, и там будут перечислены все диски. Не элегантно, но работает ...

http://lists.apple.com/archives/java-dev///2008/Feb/msg00079.html

person Jacob Nordfalk    schedule 12.05.2010

Я использовал JFileChooser с методом showDialog, и у меня не было проблем. Я могу создавать каталоги и sava в виде файла с именем, которое мне нравится. Если вы используете только метод showOpenDialog, вы не можете создавать каталоги

person sahl    schedule 06.11.2012

Я обнаружил, что вы можете установить волшебное свойство, которое заставляет awt filepicker делать правильные вещи:

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

Я смутно помню, как пытался это сделать раньше, когда я был на OS X 10.4, и это не сработало, но теперь я использую Leopard, и он работает, так что я счастливый турист.

person Mike Hearn    schedule 31.08.2009