4

我有这个简单的标签示例:

primaryStage.setTitle("Tabs Test");
        Group root = new Group();
        Scene scene = new Scene(root, 600, 500, Color.WHITE);

        TabPane tabPane = new TabPane();
        BorderPane mainPane = new BorderPane();

        //Create Tabs
        Tab tabA = new Tab();
        tabA.setText("Main Component");
        tabA.setClosable(false); // da se mahne opciqta da se zatvarq tab
        //Add something in Tab
        StackPane tabA_stack = new StackPane();
        tabA_stack.setAlignment(Pos.CENTER);
        tabA_stack.getChildren().add(accordion); // dobavq se tuka accordion
        tabA.setContent(tabA_stack);
        tabPane.getTabs().add(tabA);

        Tab tabB = new Tab();
        tabB.setText("Second Component");
        tabB.setClosable(false); // da se mahne opciqta da se zatvarq tab
        //Add something in Tab
        StackPane tabB_stack = new StackPane();
        tabB_stack.setAlignment(Pos.CENTER);
        tabB_stack.getChildren().add(new Label("Label@Tab B"));
        tabB.setContent(tabB_stack);
        tabPane.getTabs().add(tabB);

        Tab tabC = new Tab();
        tabC.setText("Last Component");
        tabC.setClosable(false); // da se mahne opciqta da se zatvarq tab
        //Add something in Tab
        StackPane tabC_vBox = new StackPane();
        tabC_vBox.setAlignment(Pos.CENTER);
        tabC_vBox.getChildren().add(new Label("Label@Tab C"));
        tabC.setContent(tabC_vBox);
        tabPane.getTabs().add(tabC);

        mainPane.setCenter(tabPane);

        mainPane.prefHeightProperty().bind(scene.heightProperty());
        mainPane.prefWidthProperty().bind(scene.widthProperty());

        root.getChildren().add(mainPane);
        primaryStage.setScene(scene);
        primaryStage.show();

你能告诉我如何设置标签名称的大小吗?我想让它们变小。

4

1 回答 1

7

你可以通过 CSS 来实现。在您的项目中创建一个“myStyle.css”文件,并通过将以下内容粘贴到此 css 文件中来覆盖选项卡标签的默认 CSS 选择器:

.tab .tab-label {
    -fx-skin: "com.sun.javafx.scene.control.skin.LabelSkin";
    -fx-background-color: transparent;    
    -fx-alignment: CENTER;
    -fx-text-fill: -fx-text-base-color;
    -fx-font-size: 8px; /* all the same except this newly added one */
}

这个 css 最初是从 caspian.css 复制而来的。有关更多自定义使用-fx-font和/或参考 JavaFX CSS 参考指南。

将 css 文件加载到场景中。

scene.getStylesheets().add(this.getClass().getResource("myStyle.css").toExternalForm());

或者直接进入tabPane,

tabPane.getStylesheets().add(this.getClass().getResource("myStyle.css").toExternalForm());
于 2013-06-04T16:49:09.137 回答