调整标签内容的大小

时间:2013-07-02 08:23:06

标签: java javafx

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

因此,假设我最大化了我的应用程序,标签内容保留其“小”尺寸。如果根目录是一个锚定窗格,我如何触发选项卡内容的大小调整?

我是javafx世界的新手,在我的无知中,我尝试将锚定页包装在hbox中并将其设置为选项卡的内容无效。

有什么想法吗?

4 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

将AnchorPane约束放入TabPane(不是Tabs,要小心),以便根据容器AnchorPane调整自身大小。

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

答案 2 :(得分: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。

答案 3 :(得分:0)

据你所说,我明白你遇到了我今天面临的同样问题!使TabPane填充窗口的空间很容易,但内容没有调整大小。

了解发生了什么的一些提示: