我有一个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>
答案 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");