我刚刚尝试了一个示例:
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
: 。
为了解决您描述的问题,我还安装了您指出的 JDK,JDK_1.7.0_25 和我设法重现了相同的问题,这是运行 u25 的同一窗口的快照
可以看到包含特殊字符的文件夹不显示。因此,我还检查了 JDK 1.7.0_40 并感到惊讶 - 它有效。在那之后,我检查了给定版本中修复的错误,我发现在这个版本中修复了几个与 mac os x 相关的错误。其中一对(7024118、7032018、7032436、7161437)参考了JFileChooser中的问题。还有其他与 mac 相关的问题(共 45 个),其中一个是指 FileDialog。不幸的是,错误描述的链接不起作用,因此我无法发布有关该主题的更多信息,但您的问题的解决方案肯定是至少更新到 1.7.0_40 版本,即使我认为最好的方法是更新到最新的(1.7.0_51)。
祝你工作顺利。我希望这可以帮助你。