我想让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。不幸的是,我的声誉不足以评论该帖子。