【问题标题】:Specify ResourceBundle within FXML file in JavaFX在 JavaFX 的 FXML 文件中指定 ResourceBundle
【发布时间】:2017-09-07 19:09:05
【问题描述】:

可以使用下面的代码在 Java 类中设置 ResourceBundle

FXMLLoader loader = new FXMLLoader(getClass().getResource("my_view.fxml"));
loader.setResources(MyRes.getBundle());    
//Node myNode = (Node) loader.load();

是否可以在 FXML 文件本身中指定 ResourceBundle?

【问题讨论】:

    标签: javafx fxmlloader


    【解决方案1】:

    来自Introduction to FXML

    <fx:include> 还支持用于指定资源包名称的属性,该资源包用于本地化包含的内容,以及用于编码源文件的字符集。

    <fx:include source="filename" resources="resource_file" charset="utf-8"/>
    

    不确定它不是包含文件的情况,因为我没有看到相关文档(通过一些快速测试,我认为这是不可能的,尽管我可能是错的)。

    【讨论】:

      【解决方案2】:

      你是这个意思吗?

      <Label text="%user.firstname"/>
      <Label text="%user.lastname"/>
      

      您可以使用% 符号将资源文件中的文本添加到.fxml 文件中的组件。

      考虑到这一点,您的资源文件必须包含这两个带有值的键。

      【讨论】:

      • 考虑控制器。它可以从 POJO loader.setController(myController); 或从 fxml fx:controller="path.to.MyController" 设置。 loader.setResources(MyRes.getBundle()); 呢?可以在POJO中指定,但是可以在view.fxml里面用fxml语法设置吗?
      • 好的,但是在loader.setResources() 你可以为你的.fxml 文件设置你的资源,比如i18n 相关的东西,或者你可以从资源文件加载的任何设置。为什么要从外部文件设置控制器?
      猜你喜欢
      • 1970-01-01
      • 2020-07-24
      • 2015-12-06
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多