我是否可以从子控制器-b更改父FXML-A中标签的文本?
在controllerb
中定义StringProperty
:
public class ControllerB {
private StringProperty text = new SimpleStringProperty();
public StringProperty textProperty() {
return text ;
}
public final String getText() {
return textProperty().get();
}
public final void setText(String text) {
textProperty().set(text);
}
// other code as before ...
}
在Controllera
中加载第二个fxml时,将标签的文本绑定到TextProperty
:
public class ControllerA {
@FXML
private Label label ;
@FXML
private StackPane parentStackPane ;
@FXML
private void someHandlerMethod() throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("FxmlFileB.fxml"));
Parent rootB = loader.load();
ControllerB controllerB = loader.getController();
label.textProperty().unbind();
label.textProperty().bind(controllerB.textProperty());
parentStackPane.getChildren().setAll(rootB);
}
// other code as before...
}
现在,当您在controllerb
中调用settext(...)
时,它将更新标签中的文本。
> System.out正确显示标签上的id; 第二个控制器与嵌入在第一个控制器中的FXML文件绑定。如代码所示,第二个FXML文件/控制器是动态加载的:。 当从第二个控制器中的initialize方法设置id时,id会按预期显示在标签中: public void initialize(){this.setid(“12”);} 编辑: 此窗格声明为属性 第二个:
我无法从其他类更改标签的文本。我需要不断更新主屏幕上的日期和时间,而我也可以同时执行其他功能。我使用了一个TimeSetting类,它扩展了Thread,在它的run()方法中,我使用setText()在无限循环中调用了updation命令,然后让该方法Hibernate一秒钟。但是在运行这个时,什么也没有发生,在关闭输出窗口时,我得到一个错误,说NullPointerExcpetion 下面是两
我需要更改JavaFX中标签的锚点。我将锚点描述为选择来翻译底层节点的点。默认情况下,锚点似乎是左上角。 我试图通过如下描述的附加翻译来解决这个问题: 代码应转换标签,使其像右下角的锚点一样工作。这不起作用,因为在我执行代码时,标签的边界框是[minX:0.0,minY:0.0,minZ:0.0,宽度:-1.0,高度:-1.0,深度:0.0,maxX:-1.0,maxY:-1.0,maxZ:0.0
我正在尝试为用Java编写的应用程序制作GUI。 我用Scene Builder制作了fxml文档,正确设置了fx: id,现在我正在尝试对表单进行简单的更改。 我的DocumentController: 我的外汇主文件: 我现在想要的一切,都是将LabelData设置为实际时间戳,但当我运行FX主文件时,什么都不会发生。有人能帮我吗? 谢谢你保罗 更新时间: 我的整个FXML文档: 我想要的一切
在JavaFX中,如何使用“标签”显示随时间不断变化的值?
为此使用的控制器是RootLayoutController.java 从这个MainMenubar.fxml文件内部也会加载,它是子fxml文件 此MainMenubar.fxml的控制器文件为MainMenubarController.java 我花了很多时间去寻找,如何从对子控制器组件执行的操作中更改父控制器组件?