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

Java 如何从fxml文件中的xml文件中读取值?,java,xml,javafx,javafx-8,fxml,Java,Xml,Javafx,Javafx 8,Fxml,我是JavaFX的新手,与Android Studio中的做法类似,我希望有一个名为strings.xml的文件,在那里我可以存储一些可以从fxml文件中读取的资源。例如,如果我在strings.xml中有以下代码: <resources> <string name="app_name">My App Name</string> </resources> 如何实现这一点?是的,可以在FXML文件中以类似于Android资源的方式使用国际化

我是JavaFX的新手,与Android Studio中的做法类似,我希望有一个名为strings.xml的文件,在那里我可以存储一些可以从fxml文件中读取的资源。例如,如果我在strings.xml中有以下代码:

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

如何实现这一点?

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

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

    variable.name_1=Hello
    variable.name_2=World
    
    (注意缺少
    标记,它只是简单的
    [var\u name]=[value]

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

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

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

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

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

    variable.name_1=Hello
    variable.name_2=World
    
    (注意缺少
    标记,它只是简单的
    [var\u name]=[value]

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

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

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

    一个总体思路:您可以实现一个用于读取和解析XML文件,然后将实例传递给
    FXMLLoader
    。然后使用标准的FXML。或者,如果您不习惯使用XML,只需使用标准并定义一个常规属性文件。一个一般想法是:您可以实现一个读取和解析XML文件的方法,然后将一个实例传递给
    FXMLLoader
    。然后使用标准的FXML。或者,如果不想使用XML,只需使用标准并定义常规属性文件即可。