小编Phi*_*l C的帖子

JavaFX SplitPane 分隔符位置不一致的行为

我有两个 StackPanes(pane1 和 pane2)显示在 SplitPane (splitPane) 中。SplitPane 的分隔线位置在构建器中设置为 0.3。第二个 StackPane (pane2) 包含一个 Button,它也将 SplitPane 的分隔线位置设置为 0.3。

在其他条件不变的情况下,预期的行为是两个操作(在构建器中设置分隔符位置并通过操作设置分隔符位置)都有效或无效。

然而,只有后者才真正起作用。

SplitPane 的构造和 Button 的 onAction 之间有什么变化。是什么阻碍了分隔器在构建器中的放置?

    StackPane pane1 = new StackPane();
    StackPane pane2 = new StackPane();

    final SplitPane splitPane = SplitPaneBuilder.create()
            .items(pane1, pane2)
            // Environment A
            .dividerPositions(new double[] {.3}) // splitPane.setDividerPosition(s)(...), etc. yield same result 
            .orientation(Orientation.HORIZONTAL)
            .build();

    // The following line influences environment A outcome, though it does not fix the issue
    SplitPane.setResizableWithParent(pane1, false);

    pane2.getChildren().add(ButtonBuilder.create()
            .text("Divider Position")
            .onAction(new EventHandler<ActionEvent>() {
                @Override
                public …
Run Code Online (Sandbox Code Playgroud)

position javafx divider splitpane

2
推荐指数
2
解决办法
6481
查看次数

标签 统计

divider ×1

javafx ×1

position ×1

splitpane ×1