gpt4 book ai didi

java - JFileChooser 忽略 OS X 上的特殊字 rune 件夹

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:55:57 27 4
gpt4 key购买 nike

我有一个 Java 程序可以浏览本地文件系统的路径,为此我们使用了 JFileChooser。如果文件夹名称是简单的英文,则在 Windows、Mac OS X 和 Linux 上都可以正常工作。但是,如果我创建名为特殊字符的文件夹,如 - ábc Eóz,则它仅在 Windows 和 Linux 上显示该特殊字符名称,但在 OS X 上我看不到那些特殊字 rune 件夹。它从文件夹列表中忽略它们。

我的程序是基于 java 7 update 21 构建的。Mac OS X 版本 - 10.8.2

我该如何解决这个问题?

谢谢

更新:我们正在使用 JavaFX 打包为 Mac 创建一个应用程序。当我们直接运行 app.jar 时,它会显示包含特殊字符的路径。但是,如果我们尝试使用 app 启动应用程序,那么它会跳过那个特殊的 char 文件夹。

最佳答案

我刚刚尝试了一个示例:

import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.*;

public class Trial {
public static void main(String... args) {
JFrame frame = new JFrame("FrameDemo");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabel emptyLabel = new JLabel();

frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);

frame.pack();

frame.setVisible(true);

JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images", "jpg", "gif");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(frame);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getName());
}
}
}

OS X 10.9.1 上运行 JDK 1.7.0_51。我创建了以下文件夹层次结构:~/Documents/Joyeux Naufragés/ábc Eóz:enter image description here .

为了解决您描述的问题,我还安装了您指出的 JDK JDK_1.7.0_25 并且我设法重现了相同的问题,这是运行 u25 enter image description here 的同一窗口的快照

如您所见,包含特殊字符的文件夹不会显示。所以我也检查了JDK 1.7.0_40 和惊喜 - 它有效。之后我查看了 bugs已在给定版本中修复,我发现此版本中修复了几个与 mac os x 相关的错误。其中一对 (7024118、7032018、7032436、7161437) 涉及 JFileChooser 中的问题。还有其他与mac相关的问题(总共45个),其中一个涉及FileDialog。不幸的是错误描述的链接不起作用,所以我不能发布关于这个主题的更多信息,但你的问题的解决方案肯定是更新到至少版本 1.7.0_40 即使我认为最好的是更新到最新 (1.7.0_51)。

祝你工作顺利。我希望这可以帮助你。

关于java - JFileChooser 忽略 OS X 上的特殊字 rune 件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17612643/

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