Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javafx如何触发阶段布局更新_Java_Javafx_Javafx 8 - Fatal编程技术网

Javafx如何触发阶段布局更新

Javafx如何触发阶段布局更新,java,javafx,javafx-8,Java,Javafx,Javafx 8,我有一个非常简单的Javafx应用程序,它显示一个由网格支持的表单。在这张表格上我有一个复选框。当用户选中此复选框时,我想动态地将另一行添加到网格中 从我的控制器: checkbox.selectedProperty().addListener((obs,oldVal,newVal)->{ 如果(!newVal){ //添加用户名标签 添加(新标签(“用户名”),0,5; //添加用户名文本字段 add(newtextfield(),1,5); } }); 上面的代码工作得很好,唯一的问题是窗

我有一个非常简单的Javafx应用程序,它显示一个由网格支持的表单。在这张表格上我有一个复选框。当用户选中此复选框时,我想动态地将另一行添加到网格中

从我的控制器:

checkbox.selectedProperty().addListener((obs,oldVal,newVal)->{
如果(!newVal){
//添加用户名标签
添加(新标签(“用户名”),0,5;
//添加用户名文本字段
add(newtextfield(),1,5);
}
});
上面的代码工作得很好,唯一的问题是窗口布局没有更新以显示新行(我的意思是高度不会自动增加),除非我手动调整窗口大小

问题如何触发版面更新?(我尝试了
gridPane.requestLayout()
,但没有效果)

更新


一个难看的解决方法是隐藏然后再次显示阶段。

要将阶段调整为其内容的大小,可以使用继承的方法。以下内容将调整后台文件的大小以响应新行:

checkbox.selectedProperty().addListener((obs,oldVal,newVal)->{
如果(!newVal){
//添加用户名标签
添加(新标签(“用户名”),0,5;
//添加用户名文本字段
add(newtextfield(),1,5);
gridPane.getScene().getWindow().sizeToScene();
}
});
是否要调整后台文件的大小以适应新行
stage.sizeToScene()
应该这样做(添加行后调用它)请。。