Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javafx 2 JavaFX:使用垂直选项卡和水平选项卡标签格式化选项卡窗格_Javafx 2 - Fatal编程技术网

Javafx 2 JavaFX:使用垂直选项卡和水平选项卡标签格式化选项卡窗格

Javafx 2 JavaFX:使用垂直选项卡和水平选项卡标签格式化选项卡窗格,javafx-2,Javafx 2,我正在尝试设置选项卡窗格的格式,其中选项卡在选项卡窗格的左侧垂直。选项卡文本需要是水平的。 将文本旋转到水平位置时会出现问题。该选项卡似乎自动调整垂直文本的大小;然后,它将变为水平,而不调整选项卡的大小。结果是,根据旋转前文本标签的长度,选项卡的高度会发生变化。 我在其他问题中找到了3种不同的解决方案,但都不管用。有有效的解决办法吗?Java 1.8u144 ----- Attempt #1 - CSS and Text Attribute ----- CSS .tab .tab-label

我正在尝试设置选项卡窗格的格式,其中选项卡在选项卡窗格的左侧垂直。选项卡文本需要是水平的。 将文本旋转到水平位置时会出现问题。该选项卡似乎自动调整垂直文本的大小;然后,它将变为水平,而不调整选项卡的大小。结果是,根据旋转前文本标签的长度,选项卡的高度会发生变化。 我在其他问题中找到了3种不同的解决方案,但都不管用。有有效的解决办法吗?Java 1.8u144

----- Attempt #1 - CSS and Text Attribute -----

CSS

.tab .tab-label {
    -fx-rotate: 90;  /*PROBLEM: it sizes height using vertical text before rotating, messes up H. */
}

FXML

<TabPane side="LEFT" rotateGraphic="true" >
    <tabs>
        <Tab fx:id="tab1" closable="false" text="Select">
            <Label text="Select"/>
        </Tab>
        <Tab fx:id="tab2" closable="false" text="Log">
            <Label text="Log"/>
        </Tab>
        <Tab fx:id="tab3" closable="false" text="Schedules">
            <Label text="Schedules"/>
        </Tab>
    </tabs>
</TabPane>

----- Attempt #2 - Java replace tab-label with Graphic -----

CSS

.tab .tab-label {
    -fx-rotate: 90;  /*PROBLEM: it sizes height using vertical text before rotating, messes up H. */
}

Java Controller

@FXML private Tab tab1;
@FXML private Tab tab2;
@FXML private Tab tab3;

@Override
public void initialize(URL url, ResourceBundle rb) {
    tab1.setGraphic(new Label("Select"));
    tab2.setGraphic(new Label("Log"));
    tab3.setGraphic(new Label("Schedules"));
}


FXML

<TabPane side="LEFT" rotateGraphic="true" >
    <tabs>
        <Tab fx:id="tab1" closable="false" >
            <Label text="Select" />
        </Tab>
        <Tab fx:id="tab2" closable="false">
            <Label text="Log" />
        </Tab>
        <Tab fx:id="tab3" closable="false">
            <Label text="Schedules" />
        </Tab>
    </tabs>
</TabPane>

----- Attempt #3 - FXML replace tab-label with Graphic -----

FXML

<TabPane side="LEFT" rotateGraphic="true" >
    <tabs>
        <Tab fx:id="tab1" closable="false" >
            <graphic>
                <Group >
                    <Label text="Select" rotate="90"/>
                </Group>
            </graphic>
            <Label text="Select" />
        </Tab>
        ...

我将回答我自己的问题,因为我找到了一个解决方案,并提供一个例子。 使用问题中的FXML方法

<TabPane side="LEFT" rotateGraphic="true" >
<tabs>
    <Tab fx:id="tab1" closable="false" >
        <graphic>
            <Group >
                <Label text="Select" rotate="90"/>
            </Group>
        </graphic>
        <Label text="Select" />
    </Tab>
    ...
…可重新调整选项卡标签的大小,以适应90度选项卡旋转

.tab-pane .tab-header-area .tab {
-fx-pref-height: 150;
-fx-pref-width: 50;}