2015-01-13 1 views

답변

10

SplitPane은 포함하고있는 구성 요소의 최소 및 최대 치수를 준수합니다 (items). 따라서 원하는 동작을 얻으려면 왼쪽 구성 요소의 maxWidthsplitPane.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); 
    } 
} 
관련 문제