我有一个用JavaFX编写的应用程序(使用FXML)。我正在尝试将我的应用程序国际化。我试图像this tutorial中描述的那样去做。
我有一个包含以下文字的属性文件: 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”上,但不是“Войти”。 然后我试着做this one tutorial之类的事情 在我的初始化方法中,我有一些代码:
@Override
public void initialize(URL arg0, ResourceBundle resources) {
if(resources == null)
System.out.println("error");
}
它给了我一条“错误”消息给日志。
那么,我做错了什么?
答案 0 :(得分:3)
text="\%submit"
\
字符表示在这种情况下转义下一个字符%
,导致在输出中写为“%submit”。所以正确的用法是text="%submit"
。
如果您使用FXMLLoader加载FXML文件,那么不要忘记设置资源:
fxmlLoader.setResources(ResourceBundle.getBundle("bundles.MyBundle", locale));
再次查看JavaFX 2 and Internationalization以获取完整示例
同时检查ResourceBundle.getBundle("bundles.MyBundle", locale)
的结果是否为空。