2017-06-13 72 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