java - Swing 中预定义的 JDialog

标签 java swing jdialog

我正在开发一个库,它将翻译 swing 中的所有硬编码字符串。

在一些帮助下,我设法找到了与之相关的所有字符串,所以这是一个开始。但是,我注意到,在尝试将 JFileChooser 中的文件重命名为已使用的名称时,我收到一个错误对话框,指出我无法执行此操作。

这是 Java,还是 Windows(运行程序的操作系统)?

如果是Java,我想更多地了解如何自定义这样的JDialog,如果是Windows,我无能为力,特别是因为该程序应该是跨平台的。

最佳答案

您可以在安装 JDK 的目录中找到 JDK 的源代码。

在 openJDK-7 实现中,您要查找的字符串定义在 包 com.sun.swing.internal.plaf.basic.resources 和文件 basic.java。 该目录下的其他文件对应不同的翻译: basic_de.javabasic_es.java、...等

这里有 Swing 类使用的所有字符串常量。

其中:

{ "FileChooser.renameErrorFileExists.textAndMnemonic", 
  "Cannot rename {0}: A file with the name you specified already exists. Specify a different file name." },

因此,您必须找到一种方法来覆盖属性FileChooser.renameErrorFileExists.textAndMnemonic来更改此对话框。

如果您想翻译这些字符串,请参阅 this answer .

不同的 Java 安装可能有不同的字符串,因为这些文件不是官方 Java API 的一部分。

据我所知,这些文件不包含在 Oracle 分发的 src.zip 中。

关于java - Swing 中预定义的 JDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13211920/

相关文章:

java - 在 Java 6 上验证回历日期(伊斯兰历)

java - 如何使用 XML 协议(protocol)检测网络流中的 "EOF"?

Java MySQL和JFrame连接 "Cannot convert from boolean to connection"

java - Swing 进度条通过 Worker 更新到 EventDispatch 线程

java - 使用格式(字符串、字符串、枚举)的 JUnit 测试

java - ConcurrentHashMap 在递增其值时是否需要同步?

java - JOptionPane 上的 ActionListener

java - 在对话框中单击“确定”时获取 Jtextfields 的值

java - 关闭 JFileChooser 和 JDialog 后 JFrame 被禁用

java - 无法在线程内更新 JDialog GUI