我有一个非常简单的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()
,但没有效果)
我相信您可以在舞台上使用.setWidth和.setHeight,然后进行更新。
https://www.programcreek.com/java-api-examples/?class=javafx.stage.Stage&method=setWidth