【问题标题】:Change Tab's Size of TabPane in JavaFX在 JavaFX 中更改 TabPane 的 Tab 大小
【发布时间】:2016-10-17 19:16:28
【问题描述】:

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

目前我有这样的东西

.

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

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

【问题讨论】:

  • 相关:stackoverflow.com/questions/31051756/…。你可以在这里查看答案。
  • @DVarga 我了解基本概念,但不知道如何实现它。我是否需要在演示者中声明它,而不是 public @FXML TabPane a ,我会像 public @FXML StretchedTabPane a 一样声明它?我确实像后者一样声明了它,但没有任何变化。
  • 您有几个选择:1) 在控制器的初始化方法中创建一个新的 SctrechedPane,从您的 FXML 文件中注入 Parent(例如 VBox、AnchorPane 或任何您想要的)然后添加新的为该父创建了StrechedPane。在这种情况下,您的 FXML 文件中不需要 TabPane。 2) 您从StrechedPane 类中复制方法,然后将其直接添加到您的控制器中(并对其进行定制以使用注入的简单TabPane) 3) 您还可以将 ScrechtedPane 添加到您的 FXML 文件中:stackoverflow.com/questions/22895186/…
  • @DVarga 我尝试执行选项 3,但它给了我一个错误,至于选项 1 和 2 我不知道该怎么做,因为我对 JavaFx 还是很陌生。你能给我一个示例代码如何实现这个类吗?谢谢

标签: java javafx scenebuilder


【解决方案1】:

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

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 等价物。

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

【讨论】:

    【解决方案2】:

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

    @FXML
    TabPane tabPane;
    

    在某处:

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

    【讨论】:

      【解决方案3】:

      据我所知,元素的宽度和高度是只读的。你 可以设置-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
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-18
        • 2016-01-16
        • 2015-07-21
        • 2016-04-20
        • 2013-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多