我想使用JFileChooser选择目录(正在运行):
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int retrival = chooser.showSaveDialog(null);
if (retrival == JFileChooser.APPROVE_OPTION) {
//do smth
} else {
//print error message
}
如果我选择一个文件夹,并向路径文本字段(如here)添加“ \ exisitingFile.txt”之类的内容,它将打印一条错误消息,因为文件“ exisitingFile.txt”不是目录。但是,如果我这样做并单击保存按钮,则“检索”的值为1(将为JFileChooser.CANCEL_OPTION)。但是如果用户取消,我不希望错误消息弹出。如果用户正在输入已经存在的文件(而不是目录)的路径,我只希望它显示。
我想知道为什么“检索”不保存JFileChooser.ERROR_OPTION的值(该值为-1),因为这显然是错误,而不是用户启动的取消操作。
谢谢,jogo
答案 0 :(得分:0)
我不知道为什么会这样处理。 我看到您可以自己验证的选项。
但是我建议您使用JavaFx的DirecotryChooser。
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
DirectoryChooser directoryChooser = new DirectoryChooser();
File file = directoryChooser.showDialog(null);
}
}
这很简单,但是Javafx需要一个特定的线程来运行,因此您必须使用Application扩展您的类并将所有代码放入start方法中。
如果您的应用程序的其余部分是基于控制台的,或者已经随心所欲地编写,那么您可能希望找到其他解决方案。
对于任何错别字或语法错误,我表示由衷的歉意,但英语并不是最常见的事情。