该程序在Intellij中运行时运行良好(可以看到中文命名的文件)。
我将其构建到 .jar 文件中。执行了 jar 和JFileChooser
无法看到那些文件。
我在 Windows 中尝试了该 jar,它工作得很好。
这个文件在 Mac OS X 10.8.2 上适合我:
import java.io.File;
import javax.swing.JFileChooser;
public class JFileChooserTest
{
public static void main(String[] args)
{
System.out.println("file.encoding=" + System.getProperty("file.encoding"));
String path;
if(args.length > 0)
path = args[0];
else
path = System.getProperty("user.dir", ".");
File dir = new File(path);
JFileChooser jfc = new JFileChooser(dir);
int result = jfc.showOpenDialog(null);
switch(result) {
case JFileChooser.CANCEL_OPTION:
System.out.println("User cancelled OPEN dialog.");
break;
case JFileChooser.APPROVE_OPTION:
System.out.println("User chose file: " + jfc.getSelectedFile());
break;
case JFileChooser.ERROR_OPTION:
System.out.println("User encountered an error");
break;
default:
System.out.println("Confused");
break;
}
System.exit(0);
}
}
这是一个示例运行:
$ java -showversion JFileChooserTest
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
file.encoding=UTF-8
User chose file: /.../测试文件.txt
这是另一个示例运行:
$ java -showversion -Dfile.encoding=ISO-8859-1 JFileChooserTest
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
file.encoding=ISO-8859-1
User chose file: /.../????.txt
在这两种情况下,文件选择对话框都正确显示了文件名(测试文件.txt)。
请注意,使用java.awt.FileDialog
将为您提供大多数 Mac OS 用户习惯看到的特定于平台的文件对话框。虽然它不是严格意义上的 Swing(并且功能集非常小),但它可能优于 SwingJFileChooser
对于诸如“打开”和“保存”对话框之类的事情。 (在我的系统上它也显示中文字符没有问题)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)