如何在javafx TabPane中添加第一个Tab左侧的空间?

时间:2015-09-25 22:00:28

标签: javafx tabs javafx-8 fxml

我有一个JavaFX应用程序,我需要将tabpane中的第一个选项卡稍微向右移动,以便稍后在创建的间隙中添加一个按钮。我通过添加样式" -fx-translate-x:20px; "以某种方式做到了这一点。选项卡中的每个选项卡但结果不是我所期望的,因为最后一个选项卡仅显示部分。下面是一个重现问题的小型fxml示例,我正在做的事情有什么不对,还是有其他方法可以实现这个目标?谢谢你的帮助

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.40" fx:controller="FXMLDocumentController">
   <children>
      <TabPane prefHeight="200.0" prefWidth="320.0" tabClosingPolicy="UNAVAILABLE">
        <tabs>
          <Tab style="-fx-translate-x: 20px;" text="Tab 1">
            <content>
              <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
            </content>
          </Tab>
          <Tab style="-fx-translate-x: 20px;" text="Tab 2">
            <content>
              <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
            </content>
          </Tab>
        </tabs>
      </TabPane>
   </children>
</AnchorPane>

1 个答案:

答案 0 :(得分:3)

您可以将css文件应用于场景以获取对tabpane的子结构的访问权限。以下将向右缩进所有选项卡50(通过将左边填充设置为50px)。

cssFile.css:

.tab-pane .tab-header-area {
    -fx-padding: 0 0 0 50;
}

在项目中:

scene.getStylesheets().add("mypackage/cssFile.css");