2017-06-13 73 views
0

嗨Stackoverflow社區,我有一個Java問題。Java:如何阻止用戶使用JFileChooser輸入文件

我正在製作一個使用JFileChooser的程序,JFileChooser僅設置爲目錄,而且我有一個Jtextfield將文本設置爲所選文件夾的目錄,但是我必須爲指定此文件中的特定文件的用戶文本域。我爲該文本字段設置了.setEditable(false),因此用戶無法輸入文本字段,用戶必須使用與JFileChooser關聯的按鈕來設置Dir。但是,用戶仍然可以在查找文件時彈出的JFileChooser GUI中輸入文本,並且當打開打開按鈕時,輸入的文本將被放入關聯的JTextField中。有沒有人知道一種方法來禁用JFileChooser彈出文本字段的可編輯性?也許我正在想這是錯誤的方式,但基本上用戶只能選擇一個Dir,並且無論如何都不能指定文件。

+0

看起來您可以在http://docs.oracle.com/javase/8/docs/api/javax/swing/JFileChooser.html#setFileSelectionMode-int-上使用JFileChooser#setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY)。即使這樣,你應該檢查getSelectedFile返回一個目錄並拒絕或接受。 – pmcevoy12

+0

準確地說,這是我所做的,但是用戶仍然可以完成文件的路徑並按下Open,它會將完整的文件路徑放在文本字段中,指定的文件將導致程序中斷,我必須只允許JFileChooser文件夾選擇GUI中的文件夾路徑。任何想法如何禁用JFileChooser GUI的可編輯性彈出? – Grant

+0

謝謝你粘貼到oracle網站的鏈接,我能夠找到我在哪裏搞亂了。 JFileChooser被設置爲接受文件,我必須更改JFileChooser以使用.getCurrentDirectory()。getpath()這樣做會覆蓋用戶在JFileChooser GUI中輸入文件,如果用戶指定文件,並且點擊ok,該文件的父目錄將被放置在JTextField中。完善。 – Grant

回答

0

使用此方法:

public void setFileSelectionMode(int mode) 

設置JFileChooser,以允許用戶只選擇文件,只需要選擇 目錄,或者可選擇文件和目錄。缺省值爲 JFilesChooser.FILES_ONLY。

+0

感謝您的回答,我認爲您可能誤解了我所問的內容,但我已經設置了目錄,但用戶仍然可以使用JFileChooser彈出GUI完成文件的路徑,這樣做會導致錯誤在程序中,我必須允許用戶只選擇一個文件夾,並且不能通過JFileChooser文件夾選擇器GUI輸入文件路徑。 – Grant