gpt4 book ai didi

java - JFileChooser,想把它锁定到一个目录

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:00:13 25 4
gpt4 key购买 nike

我有这个程序,您可以在其中下载文件,我希望将 JFileChooser 锁定到一个文件夹(目录),以便用户无法浏览其他任何内容。他只能从例如文件夹“C:\Users\Thomas\Dropbox\Prosjekt RMI\SERVER\”中选择文件。我试过搜索但没有找到任何东西。我的代码是:

String getProperty = System.getProperty("user.home");
JFileChooser chooser = new JFileChooser(getProperty + "/Dropbox/Prosjekt RMI/SERVER/"); //opens in the directory "//C:/Users/Thomas/Dropbox/Project RMI/SERVER/"
int returnVal = chooser.showOpenDialog(parent);
if (returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " + chooser.getSelectedFile().getName());

这工作正常,但现在我可以转到文件夹 Project RMI,我不希望它这样做。

提前致谢:)

编辑:我在你的帮助下做了什么:

JFileChooser chooser = new JFileChooser(getProperty + "/Dropbox/Project RMI/SERVER/"); 
chooser.setFileView(new FileView() {
@Override
public Boolean isTraversable(File f) {
return (f.isDirectory() && f.getName().equals("SERVER"));
}
});
int returnVal = chooser.showOpenDialog(parent);
if (returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: "
+ chooser.getSelectedFile().getName());
}

最佳答案

设置一个FileView并覆盖 isTraversable方法,以便它仅对您希望用户看到的目录返回 true。

这是一个例子:

String getProperty = System.getProperty("user.home");
final File dirToLock = new File(getProperty + "/Dropbox/Prosjekt RMI/SERVER/");
JFileChooser fc = new JFileChooser(dirToLock);
fc.setFileView(new FileView() {
@Override
public Boolean isTraversable(File f) {
return dirToLock.equals(f);
}
});

关于java - JFileChooser,想把它锁定到一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8926146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com