添加/删除项目时控制JavaFX ToolBar大小

时间:2015-05-13 02:50:13

标签: javafx resize toolbar

我正在使用BorderPane在所有基点(即顶部,左侧,右侧,底部)放置4个工具栏。当工具栏展开以接受其第一个项目时,当工具栏变空时,此增长不会还原。我希望当它没有任何东西时缩小到它的初始状态。手动设置宽度或高度不会做任何事情,因为我确定这些是由布局处理的。

编辑:我已添加图片以显示我的意思

1

初始状态(空工具栏,我将 fx-border-color 设置为红色)

First item added

添加第一项

3

项目已删除,显示的工具栏未恢复为初始状态

2 个答案:

答案 0 :(得分:1)

application/n-triples不是一个窗格,因此它背后可能有不同的布局逻辑。实际上它似乎是为永久显示一些按钮控制而设计的。

当没有要显示的项目时,您可以隐藏它,而不是设置它的大小:

ToolBar

编辑:完整示例

toolbar.visibleProperty().bind( Bindings.isNotEmpty( toolbar.getItems() ) );

答案 1 :(得分:0)

我找到了解决这个问题的方法,但从长远来看,它可能不是最好的解决方案。

由于我在第一次清空时发现无法恢复到工具栏的大小,因此我在工具栏的项目中添加了一个更改侦听器,以便将其从布局中删除(如果它的话)空的,并在它不再空的时候恢复它,如下所示:

        leftToolbar.getItems().addListener(new ListChangeListener<Node>(){

        @Override
        public void onChanged(javafx.collections.ListChangeListener.Change<? extends Node> c) {
            if(leftToolbar.getItems().isEmpty()) {
                borderPane.setLeft(null);
            } else if(borderPane.getLeft() == null) {
                borderPane.setLeft(leftToolbar);
            }
        }

    });