左侧 - 在JavaFX固定宽度tabpane

时间:2015-06-09 06:41:51

标签: java css javafx tabs javafx-8

创建具有定义的最小标签宽度的tabpane时,JavaFX将使每个标签的标签居中。

有没有办法左对齐标签?我试过这个:

package prv.rli.codetest;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.stage.Stage;

public class TabPaneFixedWidthLeftAligned extends Application {

    public TabPaneFixedWidthLeftAligned() {
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        TabPane pane = new TabPane();
        pane.setTabMinWidth(150);
        pane.getTabs().addAll(new Tab("Bilbo"), new Tab("Baggins"));
        pane.getStylesheets().add("file:///home/rli/devel/repository/source/java/project/apps/CodeTest/src/main/java/prv/rli/codetest/test.css");
        Scene scene = new Scene(pane, 640, 480);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

和这个css一起:

.tab-container {
    -fx-background-color: red;
    -fx-alignment: center-left;
}

.tab-label {
    -fx-background-color: blue;
    -fx-alignment: center-left;
    -fx-text-alignment: left;       
}

当背景颜色有效(表明我在正确的轨道上)时,我无法影响标签的文本对齐方式。

2 个答案:

答案 0 :(得分:1)

我通过设置以下属性来实现此目的:

.tab-pane
{
    -fx-tab-min-width: 150.0px;
}

.tab .tab-label
{
    -fx-alignment: center;
}

另请参阅StackOverflow上的这个答案:Change JavaFx Tab default Look

答案 1 :(得分:0)

您可以尝试调整.tab-label

的大小
.tab-label { 
    -fx-pref-width:150; 
    /* ... other styles*/
}