2011-11-18 40 views
5

当您在JFileChooser中的文件上单击两次(而不是双击)时,可以重命名所选文件。如何禁用此功能?我试过禁用JFileChooser中文件的重命名?

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

但它不起作用。

+1

你这样做,你创建的'JFileChooser'实例之前? – mre

+1

@mre是的,我做到了。我把它放在一个静态块中。 – kofucii

+0

我刚刚在我的机器上试了一下,设置了属性(我正在运行JRE6)。它还会删除“新建文件夹”按钮。 –

回答

11

令人惊讶的是,您不能不能禁用重命名文件/从JFileChooser本身创建新目录。正如您正确推测的那样,您需要从UIManager中禁用此FileChooser“功能”。

这里有一个片段,它可以帮助:

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); 

最关键的事情是设置“FileChooser.readOnly”在创建文件选择。

+0

您是否阅读过任何评论? – mre

+1

@mre其实这适用于我 –

+0

@ Eng.Fouad,你无法编辑文件名?发生在我身上的是我无法创建一个新文件夹..wtf – mre

1

Customizing a JFileChooser Look and Feel有一些命名常数

你的静态应该进入JFileChooser使用类。

或者做addMouseListener扔点击。

+0

和F2键监听器等 –

+0

什么样的鼠标监听器?我不认为鼠标听众是足够的。带有某种鼠标事件拦截器的Mybe它会工作吗? – kofucii