繁体   English   中英

在运行时调整TabPane的大小(JavaFX8)

[英]Resize TabPane on runtime (JavaFX8)

我有一个看起来像这样的窗口:

在此处输入图片说明

我想要的是,当用户从底部的combobox选择特定项目时, buttons和底部textfield之间会出现其他labelstextfields 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与在begginin高度= 0。 我有这样的屏幕,其tabpane不能重新调整大小:

在此处输入图片说明

我究竟做错了什么? 有人可以解释一下吗?

顺便说一句 -在所有其他元素(例如HBox)和其他所有位置上, pref Height = USE_COMPUTED_SIZE

你试过什么了?

我相信调用myGrid.autosize(); 添加所有孩子后,应该可以解决您的问题。

好吧,对我来说,作为解决方案(“脏”解决方案)可以做到这一点:

// Height set manually
tabPane.getScene().getWindow().setHeight(700);

如果有人知道如何动态设置其高度(取决于GridPane高度),请响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM