如何从 fxml 文件中的 xml 文件中读取值?

How can I read values from an xml file in a fxml file?

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

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

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

text="@string/app_name"

如何实现?

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

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

    variable.name_1=Hello
    variable.name_2=World
    

    (注意缺少 <resource> 标签,它只是普通的 [var_name]=[value])。

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

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

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