JavaFX:如何使TabPane适合其内容?

时间:2018-02-02 08:06:46

标签: javafx layout

我想让TabPane符合其内容的大小。 我目前正在使用以下代码:

    Node viewRoot = ...;

    Tab tab = new Tab("tabName");

    if (viewRoot instanceof Region) {
        Region region = (Region) viewRoot;

        StackPane tabHeaderArea = (StackPane) tabPane.lookup(".tab-header-area");
        double tabHeaderHeight = tabHeaderArea.getHeight();

        tabPane.widthProperty()
                .addListener((observable, oldValue, newValue) -> region.setPrefWidth(newValue.doubleValue()));
        tabPane.heightProperty()
                .addListener((observable, oldValue, newValue) -> region.setPrefHeight(newValue.doubleValue() - tabHeaderHeight));
    }

但是我并不特别喜欢这个解决方案,因为(a)将节点转换为Region,以及(b)依靠查找来获取选项卡标题区域的高度。

有没有更清洁的方法来实现同样的目标?

免责声明:获取标签标题大小的代码段取自this question。不幸的是,我的声誉不足以评论该帖子。

0 个答案:

没有答案