2009-08-31 13 views
7

El JFileChooser en modo de "sólo directorios" en el Mac tiene dos graves problemas agobiantes:JFileChooser para directorios en la Mac: ¿cómo hacer que no sea una mierda?

1) No se puede crear directorios con lo

2) no se puede cambiar las unidades

Esto es más bien una gran problema para mi aplicación de instalación. Por lo que puedo decir, Apple no puede evitar este problema, ni siquiera puede activar el selector de directorio no nativo ... por lo que la única alternativa es encontrar un widget de reemplazo de Java puro de código abierto/gratuito.

¿Alguien sabe de uno?

+1

Esto es un duplicado: http://stackoverflow.com/questions/845403/how-can-i-make-a-jfilechooser-on-the-mac- that-lets-users-create-directories – Tom

+0

... excepto que la otra pregunta no aborda la parte "cambiar unidades". – Jonik

+1

Hmm, ambos fueron preguntados por la misma persona aparentemente, con un intervalo de 3 meses entre ... – Jonik

Respuesta

5

¿Qué hay de usar java.awt.FileDialog? Muestra un selector nativo de archivos y permite crear nuevas carpetas.

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); 
} 
+0

Eso es para elegir archivos, no directorios. No creo que sea posible seleccionar un directorio con ese widget. –

+1

Agregué la línea faltante para permitirle elegir carpetas. Utilizo esto en mi aplicación comercial para que los usuarios elijan carpetas. Es mucho mejor que JFileChooser –

2

descubrí que hay una propiedad mágica puede establecer que hace que el filepicker AWT hacer lo correcto:

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

Recuerdo vagamente intentar esto antes cuando estaba en OS X 10.4 y no funcionó, pero ahora estoy en Leopard y lo hace, así que soy un campista feliz.

+0

Esto realmente funciona en OS X 10.4. –

2

que se utiliza con el método JFileChooser showDialog y no tuve problema. Puedo crear directorios y sava como el archivo con el nombre que me gusta. Si usa solo el método showOpenDialog, no puede crear directorios

Cuestiones relacionadas