JavaFX 选项卡窗格:为什么选择其他选项卡后内容不刷新



所以我目前是第一次在JavaFx中使用tabpane。

在它没有按预期工作后,我一次减少了一点选项卡窗格的内容,直到它看起来像这样:

<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"后,内容区域仍显示标签"测试"。滚动后,它会立即刷新。这是一个简单的选项卡窗格,那么为什么它不刷新其内容呢?

编辑:我现在正在使用1.8u74。我编辑了 fxml,所以现在它尽可能完整,但尽可能减少。控制器不会以任何方式影响选项卡窗格。到目前为止,它处理简单的用户输入。删除此示例不需要的任何内容后,它减少到 0。

我曾经有同样的问题。我没有它无法正确更新的确切原因,但是如果您想强制刷新布局,您可以请求它,而不是使用更改大小等解决方法。

requestLayout();

假设您要在控制器中设置选项卡的内容。

class Panel extends TabPane {
    private Tab tab;
    public void setTabContent(Node container) {
        tab.setContent(container);
        getSelectionModel().select(tab);
        requestLayout(); // to force refresh the layout
    }
}

然后从控制器调用此方法。

相关内容

最新更新