Javafx 左侧带有水平选项卡的Java FX8选项卡

Javafx 左侧带有水平选项卡的Java FX8选项卡,javafx,javafx-8,Javafx,Javafx 8,我需要一个选项卡式窗格,左侧有选项卡,选项卡文本/图形需要水平 几个月前我在Scenebuilder上做了这个 但是,当我通过Java代码添加其他选项卡时,选项卡位于左侧,但图形文本与使用场景生成器创建的选项卡不同,是垂直的 在附加的图像中,前两个选项卡是通过Scenebuilder创建的,它们的方向正确,第三个选项卡是使用Java代码动态添加的 Tab studentAdmission = new Tab(); studentAdmission.setContent((Pare

我需要一个选项卡式窗格,左侧有选项卡,选项卡文本/图形需要水平

几个月前我在Scenebuilder上做了这个

但是,当我通过Java代码添加其他选项卡时,选项卡位于左侧,但图形文本与使用场景生成器创建的选项卡不同,是垂直的

在附加的图像中,前两个选项卡是通过Scenebuilder创建的,它们的方向正确,第三个选项卡是使用Java代码动态添加的

Tab studentAdmission = new Tab();
        studentAdmission.setContent((Parent)new FXMLLoader(getClass().getResource("Customer_View.fxml")).load());


        studentAdmission.setGraphic(new Label("Student Admission"));
        mainTab.getTabs().add(studentAdmission);


有人能告诉我为什么这个标签不能像另一个标签那样旋转。

在发布问题后,你刚刚发现需要添加一个包含标签组的StackPane来实现这一点

  Tab studentAdmission = new Tab();
     studentAdmission.setContent((Parent)new FXMLLoader(getClass().getResource("Customer_View.fxml")).load());

    Label l = new Label("Student Admission");
    l.setRotate(90);
    StackPane stp = new StackPane(new Group(l));
    studentAdmission.setGraphic(stp);
    mainTab.getTabs().add(studentAdmission);

+1对于那次黑客攻击的美丽肮脏:-)惊讶于似乎需要这样的黑客攻击。并且无法使其工作:选项卡的宽度总是太小,好像图形没有包含在pref计算中。还有什么窍门吗?你是指我的图形中的标签尺寸太小还是你面临的问题?您需要在堆栈窗格上设置大小属性,以便它反映在选项卡子级上,我知道它很愚蠢,例如:StackPane stp=newstackpane(newgroup(l));stp.SETPREFHEIGH(160);意思是我在复制你的黑客时遇到了问题:-)嗯。。还是不走运。您的jdk版本是什么?您需要添加tabpane.setRotateGraphic(true),然后再添加任何选项卡,这在我的代码中并不清楚,因为它是在FXML端完成的。在努力复制这一点后:您需要在tabpane上将选项卡的最大高度设置为更高的值。因此,在场景生成器中,最终会出现TabPane(Rotate Graphic true,tab max/min height=120)>tab(无标签)>tab Graphic=StackPane(您可能需要将StackPane放在选项卡中,然后再次尝试在选项卡上移动它以显示“图形点”)>Group>label(使用文本,旋转90°)
    // Firstly
    tabPane.setSide(Side.LEFT);
    tabPane.setRotateGraphic(true);        

    Label l = new Label("Titel Tab1");
    l.setRotate(90);
    StackPane stp = new StackPane(new Group(l));
    stp.setRotate(90);
    tab1.setGraphic(stp);

    l = new Label("Titel Tab2");
    l.setRotate(90);
    stp = new StackPane(new Group(l));
    stp.setRotate(90);
    tab2.setGraphic(stp);

    tabPane.setTabMinHeight(100);
    tabPane.setTabMaxHeight(100);