一種方法是設定其更改偵聽器的分隔條位置固定值:
final double pos[] =
{
0.3f, 0.6f, 0.9f
};
sp.setDividerPositions(pos);
for (int i = 0; i < sp.getDividers().size(); i++)
{
final int ind = i;
SplitPane.Divider divider = sp.getDividers().get(i);
divider.positionProperty().addListener(
(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) ->
{
divider.setPosition(pos[ind]);
});
}
隱完整的例子:
@Override
public void start(Stage primaryStage)
{
SplitPane sp = new SplitPane();
final StackPane sp1 = new StackPane();
sp1.getChildren().add(new Button("Button One"));
final StackPane sp2 = new StackPane();
sp2.getChildren().add(new Button("Button Two"));
final StackPane sp3 = new StackPane();
sp3.getChildren().add(new Button("Button Three"));
sp.getItems().addAll(sp1, sp2, sp3);
final double pos[] =
{
0.04f, 0.4f, 0.86f
};
sp.setDividerPositions(pos);
for (int i = 0; i < sp.getDividers().size(); i++)
{
final int ind = i;
SplitPane.Divider divider = sp.getDividers().get(i);
divider.positionProperty().addListener(new ChangeListener<Number>()
{
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue)
{
divider.setPosition(pos[ind]);
}
});
}
Scene scene = new Scene(sp, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
爲什麼使用splitpane如果你不要拖動分隔線? –
我需要分離出4個組件。必須有一個分隔符來區分它們。 – NaveenBharadwaj
您可以隨時將它們添加到GridPane或其他適合您需要並顯示邊框的佈局。 – ItachiUchiha