2011-11-18 36 views
5

Al hacer clic dos veces (sin hacer doble clic) en un archivo en JFileChooser, puede cambiar el nombre del archivo seleccionado. Cómo deshabilitar esta característica? Lo he intentado con¿Deshabilitar cambiar el nombre de un archivo en JFileChooser?

UIManager.put("FileChooser.readOnly", Boolean.TRUE); 

pero no funciona.

+1

¿Has hecho esto antes de crear la instancia de 'JFileChooser'? – mre

+1

@mre Sí, lo hice. Lo he puesto en un bloque estático. – kofucii

+0

Acabo de probar esto en mi máquina, estableciendo que la propiedad funciona (estoy ejecutando JRE6). También elimina el botón "Nueva carpeta". –

Respuesta

11

Sorprendentemente, no se puede desactivar el cambio de nombre de archivos/crear nuevos directorios de JFileChooser sí mismo. Como supuso correctamente, necesita desactivar esta "característica" FileChooser de UIManager.

He aquí un fragmento que podría ayudar:

http://www.coderanch.com/t/555535/GUI/java/FileChooser-readOnly

Boolean old = UIManager.getBoolean("FileChooser.readOnly"); 
    UIManager.put("FileChooser.readOnly", Boolean.TRUE); 
    JFileChooser fc = new JFileChooser("."); 
    UIManager.put("FileChooser.readOnly", old); 

La clave es establecer "FileChooser.readOnly" antes de crear el selector de archivos.

+0

¿Has leído CUALQUIERA de los comentarios? – mre

+1

@mre En realidad, esto funciona para mí –

+0

@ Eng.Fouad, ¿No puede editar el nombre del archivo? Todo lo que sucede para mí es que no puedo crear una nueva carpeta ... wtf – mre

1

Customizing a JFileChooser Look and Feel tiene algún cambio de nombre de las constantes

Su estático debe entrar en el JFileChooser usando clase.

Como alternativa, haga addMouseListener para lanzar un clic de distancia.

+0

y oyente de clave F2, etc. –

+0

¿Qué tipo de oyente de mouse? No creo que el oyente del ratón sea suficiente. Mybe con algún tipo de interceptor de evento de ratón ¿Funcionará? – kofucii

Cuestiones relacionadas