3

我有一个标签页,其中标签页是动态加载的。每个选项卡都有一个锚窗格作为其内容。除了一个小细节之外,这很好用:当我调整主应用程序的大小时,选项卡内容不会调整大小。

所以假设我最大化我的应用程序,标签内容保持其“小”尺寸。考虑到它的根是锚窗格,如何触发标签内容的调整大小?

我是 javafx 世界的新手,在我的无知中,我尝试将锚窗格包装在 hbox 中并将其设置为选项卡的内容无济于事。

有任何想法吗?

4

4 回答 4

0

将 AnchorPane 约束放入 TabPane(不是 Tabs,请注意),以便它根据其容器 AnchorPane 调整自身大小。

如果您使用的是 SceneBuilder,TabPane 实例的布局部分会为您提供帮助。如果您还动态创建 TabPane,则可以将此常量设置为AnchorPane.setLeftAnchor(theTabPane, ...),AnchorPane.setTopAnchor(theTabPane, ...)等。

于 2013-07-03T09:40:09.413 回答
0

这是如何调整组件大小的示例,但想法是相同的。

    Rectangle rec = new Rectangle();
    rec.widthProperty().bind(stackPane.widthProperty().subtract(50));
    rec.heightProperty().bind(stackPane.heightProperty().subtract(50));

您必须获得主舞台的大小,并且.bind(stackPane.heightProperty().subtract(50));可以动态缩小大小。

但我是这项技术的新手,更有经验的人可以给你更准确的答案。

于 2013-07-02T15:08:48.257 回答
0

我目前有一个可行的解决方案,但我很确定这不是最干净的方法:

            final Pane root = loader.getRoot();
            tbsCore.widthProperty().addListener(new ChangeListener<Number>() {
                @Override
                public void changed(ObservableValue<? extends Number> arg0, Number arg1, Number newValue) {
                    root.setPrefWidth(newValue.doubleValue());
                }
            });
            tbsCore.heightProperty().addListener(new ChangeListener<Number>() {
                @Override
                public void changed(ObservableValue<? extends Number> arg0, Number arg1, Number newValue) {
                    root.setPrefHeight(newValue.doubleValue());
                }
            });

请注意,“root”是我要放入选项卡的窗格,而“tbsCore”是 TabPane。

于 2013-07-03T12:03:52.010 回答
0

从你说的,我明白你和我今天遇到的问题一样!填充TabPane窗口的空间很容易,但内容没有调整大小。

找出正在发生的事情的一些提示:

于 2018-03-23T15:00:00.843 回答