【发布时间】:2016-06-10 02:10:46
【问题描述】:
所以我目前是第一次在 JavaFx 中使用 tabpane。
在它没有按预期工作之后,我一次减少了一点 tabpanes 的内容,直到它看起来像这样:
<ScrollPane prefWidth="Infinity" prefHeight="Infinity" fitToWidth="true" xmlns:fx="http://javafx.com/fxml"
fx:controller="de.Cos4U.ui.scene.control.CosplayView">
<VBox alignment="top_left" minWidth="200" prefHeight="200" spacing="5">
<TabPane prefHeight="Infinity" minHeight="Infinity">
<tabs>
<Tab text="Tab1">
<content>
<Label text="test"/>
</content>
</Tab>
<Tab text="Tab2">
<content>
<Label text="tests2"/>
</content>
</Tab>
</tabs>
</TabPane>
</VBox>
</ScrollPane>
选择“Tab2”后,内容区仍显示“test”标签。滚动时它会立即刷新。就是这么简单的tabpane,为什么不刷新内容呢?
编辑:我现在使用的是 1.8u74。我编辑了 fxml,所以现在它尽可能完整,但尽可能减少。 控制器不会以任何方式影响选项卡窗格。到目前为止,它处理简单的用户输入。删除此示例不需要的任何内容后,将其减少为 0。
【问题讨论】:
-
发布完整的 FXML(和控制器,如果需要)以提供 MCVE。请包括重现行为所需的部分。 “当你滚动时” - 用什么?
TabPanes 正常更换他们的Tabs,你发布的是标准的TabPane。 -
另外发布您正在使用的 JavaFX 版本:我在使用 1.8u60 版本时遇到了一些令人耳目一新的问题。
-
我使用的是 1.8u74。
-
我现在使用了一个非常肮脏的解决方法。 Whenever a tab is selected i programmatically increase and decrease the stage-width a little bit.这会强制重新绘制。
-
@Shiniji Kudo 你好,我也有同样的问题,但当我向 TabPane 添加新标签时,如果我不稍微调整窗口大小,则不会显示 :(