我有一个 SplitPane,我需要将布局分成 25% 和 75%。此外,我需要禁止向右侧拖动超过 25% 的分割。但是我可以在 25% 的空间内拖动到任何程度。请帮忙。

最佳答案

SplitPane 将尊重它包含的组件 ( items ) 的最小和最大尺寸。因此,要获得您想要的行为,请将左侧组件的 maxWidth 绑定(bind)到 splitPane.maxWidthProperty().multiply(0.25) :

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.SplitPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class ConstrainedSplitPane extends Application {

    @Override
    public void start(Stage primaryStage) {
        StackPane leftPane = new StackPane(new Label("Left"));
        StackPane rightPane = new StackPane(new Label("Right"));
        SplitPane splitPane = new SplitPane();
        splitPane.getItems().addAll(leftPane, rightPane);
        splitPane.setDividerPositions(0.25);

        //Constrain max size of left component:
        leftPane.maxWidthProperty().bind(splitPane.widthProperty().multiply(0.25));

        primaryStage.setScene(new Scene(new BorderPane(splitPane), 800, 600));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

关于javafx - 如何在 SplitPane JavaFX 中锁定分隔符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27921491/

10-12 22:24