JavaFX 8 TabPane - Tab按钮不断滚动到TabPane标题的视口之外

时间:2014-12-06 03:16:05

标签: java javafx javafx-8

我遇到一个非常奇怪的问题,TabPane左侧有标签按钮。问题仅出现在应用程序的运行时,而不是在SceneBuilder(2.0)预览中。

每次选定的Tab更改时(通过用户点击或更改selectedIndex通过代码),标签会将其位置向上移动并移出标签按钮区域的视口,如您所见在下面的例子中。移动的像素数量似乎取决于TabPane的宽度(宽度越小,移动的越多),并且我的TabPane中的按钮完全移出视口的大部分时间

通过对焦不同的窗口或在标签按钮区域向上或向下滚动,可以使标签按钮恢复到正常位置。一旦他们回到正常位置,他们只会在所选标签再次更改时再次移动。

我尝试访问TabHeaderSkin对象(样式类“选项卡”),这些对象似乎是TabPane标题区域中由于移位而变化的唯一运行时对象。根据Scenic View,他们的localY值会发生变化。但是,myTabPane.lookupAll(".tab")一无所获。

除此之外,似乎根本没有可能访问自动滚动行为或标签按钮位置或类似的东西。

enter image description here

修改
这是一个MCVE-FXML

<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>


<HBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="20.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <TabPane side="LEFT" tabClosingPolicy="UNAVAILABLE">
        <tabs>
          <Tab text="Untitled Tab 1">
            <content>
              <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
            </content>
          </Tab>
          <Tab text="Untitled Tab 2">
            <content>
              <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
            </content>
          </Tab>
            <Tab text="Untitled Tab">
              <content>
                <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
              </content>
            </Tab>
            <Tab text="Untitled Tab">
              <content>
                <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
              </content>
            </Tab>
        </tabs>
      </TabPane>
   </children>
</HBox>

1 个答案:

答案 0 :(得分:1)

这看起来像影响JavaFX 8u20的known bug。它似乎是在8u40的ea版本中修复的。