【发布时间】:2020-02-24 11:11:06
【问题描述】:
我有一个非常简单的 Javafx 应用程序,它显示一个由网格支持的表单。在这个表格上,我有一个复选框。当用户选中此复选框时,我想在网格中动态添加另一行。
来自我的控制器:
checkbox.selectedProperty().addListener((obs, oldVal, newVal) - > {
if (!newVal) {
// Add Username Label
gridPane.add(new Label("Username : "), 0, 5);
// Add Username Text Field
gridPane.add(new TextField(), 1, 5);
}
});
上面的代码工作得很好,唯一的问题是窗口布局没有更新以显示新行(我的意思是高度不会自动增加),除非我手动调整窗口大小。
问题如何触发布局更新? (我试过gridPane.requestLayout()但是没有效果)
更新
一个丑陋的解决方法是隐藏然后再次显示舞台。
【问题讨论】:
-
您是否要调整舞台以适应新行?
stage.sizeToScene()应该这样做(添加行后调用它)