在 JavaFX 中更改 Tab 的 TabPane 大小

Change Tab's Size of TabPane in JavaFX

我们可以在 JavaFX 中更改 TabPane 的选项卡大小吗?我正在使用 SceneBuilder,但它似乎不提供选项卡大小的任何自定义设置

目前我有这样的东西

.

我想要的基本上是填充父级的选项卡,当它被点击时它会显示其他类似这样的表格(我用按钮制作它只是粗略的图像)

有没有可能做这样的事情?任何帮助表示赞赏。谢谢

As far as I know the width and height of elements are read-only. You can set -fx-pref-width, -fx-pref-height, -fx-max-width, -fx-min-width, -fx-max-height, -fx-min-height ,-fx-border-width and -fx-border-height to adjust the size of Java FX elements.

你可以使用 Css:

做你想做的事
.tab {

    -fx-pref-width: 250
} 
.tab-header-background {
    -fx-background-color:transparent
}

.tab-pane{
    -fx-padding: 0 -1 -1 -1
}

我们可以为 TabPane 上的所有 Tabs 设置 minimum/maximum width/height。

@FXML
TabPane tabPane;

和某处:

tabPane.setTabMinWidth(33);
tabPane.setTabMinHeight(33);
tabPane.setTabMaxWidth(69);
tabPane.setTabMaxHeight(69);

您可以通过 属性 绑定来实现:

val binding = tabPaneParent.widthProperty().doubleBinding(tabPane.tabs) {
    it as Double / tabPane.tabs.size // - 30
}

tabPane.tabMinWidthProperty().bind(binding)
tabPane.tabMaxWidthProperty().bind(binding)

tabPaneParenttabPane 所在的节点,doubleBinding 是 TornadoFX 的等价物 Bindings#createDoubleBinding.

这将对用户调整您的 window 大小以及标签计数 increasing/decreasing 做出反应。