Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing翻译库_Java_Swing_Localization - Fatal编程技术网

Java Swing翻译库

Java Swing翻译库,java,swing,localization,Java,Swing,Localization,我已经看过了,但找不到一个库来处理合法化swing组件数据的问题 因此,我决定创建我自己的并将其公开 唯一的问题是我真的不知道语言字符串包含在哪里 如果有人愿意告诉我在src文件夹中查找的位置,我将非常乐意创建一个库,该库的工作方式如下: libraryClassName.JFileChooser.setJFileChooserStringValue(string); Swing在com/sun/java文件夹中提到,它也在javax文件夹中。有许多类包括每个组件的swing组件的名称(JFi

我已经看过了,但找不到一个库来处理合法化swing组件数据的问题

因此,我决定创建我自己的并将其公开

唯一的问题是我真的不知道语言字符串包含在哪里

如果有人愿意告诉我在src文件夹中查找的位置,我将非常乐意创建一个库,该库的工作方式如下:

libraryClassName.JFileChooser.setJFileChooserStringValue(string);
Swing
com/sun/java
文件夹中提到,它也在
javax
文件夹中。有许多类包括每个组件的swing组件的名称(
JFileChooser.java
FileChooserUI.java
BasicFileChooserUI.java
MetalFileChooserUI.java
MultiFileChooserUI.java
FileChooserPainter.java
,等等)还有许多更一般的类,它们可能包含也可能不包含本地化所需的字符串变量

我想,当找到一个组件的字符串值时,所有其他组件都应该在相应的位置

所以,如果你能帮助我,我将制作一个库,它将减轻许多程序员的痛苦,他们正试图翻译他们的程序


重要编辑:JFileChooser是唯一一个包含预定义字符串的swing组件吗?

好的,我会尽量不偷懒,帮你解决这个问题:

文件/src/javax/swing/plaf/basic/BasicFileChooserUI.java有一个名为installStrings的好方法(第282行),它包含了您想要的内容:

protected void installStrings(JFileChooser fc) {

        Locale l = fc.getLocale();
        newFolderErrorText = UIManager.getString("FileChooser.newFolderErrorText",l);
        newFolderErrorSeparator = UIManager.getString("FileChooser.newFolderErrorSeparator",l);

        newFolderParentDoesntExistTitleText = UIManager.getString("FileChooser.newFolderParentDoesntExistTitleText", l);
        newFolderParentDoesntExistText = UIManager.getString("FileChooser.newFolderParentDoesntExistText", l);
// ...
}

您实际上需要找到的似乎是对
UIManager.getString(String,Locale)
的调用,它似乎包含您要查找的密钥。实际的方法定义可能会泄露更多的秘密,但我懒得去检查;)

嗯,我想这是JFileChooser中的所有字符串、默认值以及我可以通过体验获得的更多。。。我想这就是全部了…按照这个方法,你会走到死胡同,我想。。。但是我对找到保存实际字符串值的变量非常感兴趣……是的,这有点棘手。我还记得,在构建JFileChooser之前必须设置翻译,这是我决定将其子类化的主要原因。不幸的是,整个Swing API相当丑陋(我是根据经验说的)。这会让你头疼…所以,一旦构建了JFileChooser,为了改变语言,你就必须处理它并构建一个新的?看起来是这样的。但这不是桌面应用程序的问题。实际上,您应该通过
Locale.getDefault(Locale.Category.DISPLAY)
使用系统语言。有时,有人可能会动态地更改系统语言,但这将是一个极端情况。
JFileChooser是否是唯一的
,而不是其他组件中是否包含预定义的字符串?部分复合JComponents具有默认标签或默认值