在javafx中访问新注入的FXML文件的节点

时间:2017-07-07 13:41:39

标签: javafx fxmlloader

我有一个FXML文件,其控制器设置为:

def _convert_field_to_tz(self, field_name, tzname):
    if settings.USE_TZ and self.connection.timezone_name != tzname:
        field_name = "CONVERT_TZ(%s, '%s', %%s)" % (field_name, self.connection.timezone_name)
        params = [tzname]
    else:
        params = []
    return field_name, params

现在点击一个按钮后,我在当前fxml中加载另一个fxml:

fxmlloader.load(url);
fxmlloader.setController(<homeControllerObject>)

如何在HomeController中访问'sample.fxml'中定义的标签。我尝试使用

FXMLLoader fxmlLoader = new FXMLLoader();
Parent root = fxmlLoader.load(HomeController.class
              .getResourceAsStream("sample.fxml"));
pane1.getChildren().add(root);

在HomeController的顶部,但由于注入稍后发生,label的值始终为null。 关于如何访问这些新节点的任何想法?

1 个答案:

答案 0 :(得分:0)

您应该为标签定义一个fx:id并将此ID用作字段名称。例如,如果fx:id是myLabel,则可以像下面这样在控制器中使用它: @FXML 标记myLabel;