【问题标题】:How can I read values from an xml file in a fxml file?如何从 fxml 文件中的 xml 文件中读取值?
【发布时间】:2016-06-08 21:54:08
【问题描述】:

我是 JavaFX 的新手,与 Android Studio 中的类似方式一样,我想要一个名为 strings.xml 的文件,我可以在其中存储一些可以从中读取的资源fxml 文件。例如,如果我在 strings.xml 中有以下代码:

<resources>
    <string name="app_name">My App Name</string>
</resources>

我想在 fxml 文件中做这样的事情:

text="@string/app_name"

如何才能做到这一点?

【问题讨论】:

  • 一个一般的想法:您可以实现一个ResourceBundle 来读取和解析您的XML 文件,然后将一个实例传递给FXMLLoader。然后使用标准 FXML resource resolution。或者,如果您不习惯使用 XML,只需使用标准 PropertyResourceBundle 并定义一个常规属性文件。

标签: java xml javafx javafx-8 fxml


【解决方案1】:

是的,可以在 FXML 文件中以类似于 Android 资源的方式使用国际化字符串。有一些区别:

  1. 资源文件是.properties 文件而不是.xml。变量的定义方式也不同:

    variable.name_1=Hello
    variable.name_2=World
    

    (注意缺少&lt;resource&gt; 标签,它只是普通的[var_name]=[value])。

  2. 要引用 FXML 文件中的字符串,请使用 % 而不是 @string/。例如:

    <Button
        fx:id="button1"
        text="%variable.name_1"
    />
    

就是这样。我建议搜索ResourceBundle,因为这解释了如何为要选择的正确语言命名属性文件。此外,该捆绑包还可用于将国际化变量添加到您的代码中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多