java - JFileChooser:选择模式为文件和目录时无法选择桌面

标签 java swing jfilechooser

我遇到了 JFileChooser 的问题,想看看是否有解决方法。

如果创建了 JFileChooser 且 setFileSelectionMode 为 FILES_AND_DIRECTORIES,则当用户单击左侧(XP 中)的快捷按钮(例如“桌面”或“我的文档”)或下拉到“桌面”时,该字段不会放置在“文件名”JTextPane 中。当单击“选择/接受”按钮时,没有任何反应(因为 isDirectorySelected() 由于某种原因返回 false)。

重写approveSeletion不起作用,因为BasicFileChooser中的事件处理函数不会调用它。

如何才能选择桌面而无需手动导航到桌面,而是通过单击左侧的快捷方式?

谢谢

最佳答案

在 Windows 中,桌面不受文件系统中任何文件的支持 - 它是一个 shell 命名空间。因此,JFileChooser 确实无法返回给您任何内容。是的,我知道有一个文件夹包含用户的桌面 - 但请记住,桌面实际上显示为用户桌面和“所有用户”桌面文件夹的组合 - 加上 shell 添加但不是一部分的其他内容任何文件夹(如垃圾箱)。因此,返回代表“桌面”的 File 对象几乎是不可能的。

长话短说:问问自己为什么需要这样做 - 很可能您将深入 native 代码领域,处理 namespace PIDL 以及您可能不想涉及的各种麻烦(例如我的生活,我无法理解为什么 M$ 必须让这个东西如此难以使用)...

以下是 Windows shell 命名空间的介绍,以便您了解所涉及的内容:

http://msdn.microsoft.com/en-us/library/cc144090%28v=vs.85%29.aspx

关于java - JFileChooser:选择模式为文件和目录时无法选择桌面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4434482/

相关文章:

java - 如何保存文件名然后使其出现在文本区域中

java - 将应用程序链接到 Swing GUI 的最佳方式是什么?

java - JFileChooser 打开多个txt文件

java - JFileChooser 的 showOpenDialog() 未打开用于打开文件的对话框

java - JFileChooser 崩溃 - Java 7

java - 在jsp中使用枚举实例内部类

java - 禁用并重新启用时无法单击 EditText

java - 如何使用Eclipse浏览java源码

java - 单击之前图像呈灰色 - 更改为颜色并记住单击的图像

java - JTreeTable 选择监听器索引