1

我有一个在 JavaFX 上编写的应用程序(使用 FXML)。我正在尝试使我的应用程序国际化。我试图按照本教程中的描述进行操作。

我有一个带有如下文本的属性文件:submit=Войти

我有一个按钮,用 FXML 描述:

<Button id="button1" fx:id="submit" layoutX="69.0" layoutY="200.0" onAction="#loginFired" prefHeight="45.0" prefWidth="97.0" text="\%submit" />

属性文件和 fxml 文件在同一目录中。

但是我的按钮没有文本,我希望它有,上面写着“%submit”,而不是“Войти”。然后我尝试在这个教程中做类似的事情 在我的初始化方法中,我有 suh 代码:

@Override
public void initialize(URL arg0, ResourceBundle resources) {
    if(resources == null)
        System.out.println("error");
}

它给了我一个“错误”的日志信息。

那么,我做错了什么?

4

1 回答 1

4
text="\%submit"

\字符意味着转义下一个字符,%在这种情况下,导致在输出中写为“%submit”。所以正确的用法是text="%submit".

如果您使用 FXMLLoader 加载 FXML 文件,请不要忘记设置资源:

fxmlLoader.setResources(ResourceBundle.getBundle("bundles.MyBundle", locale));

再次查看JavaFX 2 和 Internationalization的完整示例。
还要检查结果是否ResourceBundle.getBundle("bundles.MyBundle", locale)为空。

于 2012-05-15T15:46:29.953 回答