我有一个看起来像这样的窗口:
我想要的是,当用户从底部的combobox
中选择特定项目时,在labels
和底部textfields
之间会显示其他buttons
和textfield
,所以它看起来像这样:
为此,我使用了另一个高度为0的网格窗格:
当我只是从构建器向该网格添加行时,tabPane会自动调整大小,我得到了我在第二张图片上显示的内容。但是,当我尝试在代码中执行此操作时,请执行以下操作:
ColumnConstraints col1 = new ColumnConstraints();
ColumnConstraints col2 = new ColumnConstraints();
ColumnConstraints col3 = new ColumnConstraints();
ColumnConstraints col4 = new ColumnConstraints();
ColumnConstraints col5 = new ColumnConstraints();
ColumnConstraints col6 = new ColumnConstraints();
myGrid.getColumnConstraints().addAll(col1,col2,col3,col4,col5,col6);
myGrid.add(new Label("Label"), 0, 0);
myGrid.add(new Label("Label"), 0, 1);
myGrid.add(new Label("Label"), 0, 2);
myGrid.add(new Label("Label"), 0, 3);
myGrid.add(new Label("Label"), 0, 4);
myGrid.add(new Label("Label"), 0, 5);
myGrid.add(new TextField(), 1, 0);
myGrid.add(new TextField(), 1, 1);
myGrid.add(new TextField(), 1, 2);
myGrid.add(new TextField(), 1, 3);
myGrid.add(new TextField(), 1, 4);
myGrid.add(new TextField(), 1, 5);
myGrid
- 是gridpane
,其中身高= 0。而且我有这样的屏幕,tabpane
没有重新调整大小:
我做错了什么?有人可以解释一下吗?
BTW - 关于所有其他元素,例如HBox和其他地方pref Height = USE_COMPUTED_SIZE
答案 0 :(得分:0)
到目前为止你尝试了什么?
我相信在添加所有孩子后调用myGrid.autosize();
可以解决您的问题。
答案 1 :(得分:0)
好吧,对我来说,作为解决方案(“脏”解决方案)的工作原理如下:
// Height set manually
tabPane.getScene().getWindow().setHeight(700);
如果有人知道如何动态设置它的高度(取决于GridPane高度),请回复。