在JavaFX中更改Tab键的TabPane大小

时间:2016-06-16 10:19:12

标签: java javafx scenebuilder

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

目前我有类似的东西

我想要的基本上是填充父母的标签,当点击它时,它会显示其他形式(我用按钮作为粗略图像)

enter image description here

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

3 个答案:

答案 0 :(得分:4)

  

据我所知,元素的宽度和高度是只读的。您   可以设置-fx-pref-width,-fx-pref-height,-fx-max-width,-fx-min-width,   -fx-max-height,-fx-min-height,-fx-border-width和-fx-border-height用于调整Java FX元素的大小。

您可以使用Css执行所需操作:

.tab {

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

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

enter image description here

答案 1 :(得分:3)

我们可以为TabPane上的所有选项卡设置最小/最大宽度/高度。

@FXML
TabPane tabPane;

和某处:

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

答案 2 :(得分:0)

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

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等值货币。

这将对用户调整窗口大小以及选项卡计数的增加/减少做出反应。