2011-11-18 72 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