2016-12-29 3 views
0

창 크기를 조정하면 SplitPane의 나누기가 주어진 백분율 (예 : dividerPositions = "0.05")에 따라 다른 위치로 이동합니다.JavaFX의 SplitPanes에서 분할 자 위치를 백분율 대신 픽셀에 바인딩하는 방법은 무엇입니까?

하지만 크기를 조정 한 후에도 동일한 위치에 머물러 있기를 원합니다 (예 : 픽셀 크기와 백분율이 아닌). 부모 창 크기를 조정할 때 "이동"(비율 제약에 따름)을 원하지 않습니다.

어떻게 든 할 수 있습니까? 이

나를위한 완벽한 솔루션은 무엇인가 이와 유사한 것 (I 코드에서 바람직하게이 문제를 해결하고자, CSS의 솔루션은 나를 위해 차입니다) :

<SplitPane orientation="VERTICAL" dividerPositionFromTop="100px" 
      AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" 
      AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" > 
... 
</SplitPane> 
dividerPositionFromTop 슬프게도으로 존재하지 않는

내 지식.

답변

1

당신은 당신의 SplitPaneheightProperty에 리스너를 추가하고 백분율 값 다시 계산할 수 있습니다 :

SplitPane splitPane = new SplitPane(); 

splitPane.heightProperty().addListener(new ChangeListener<Number>() { 
    @Override 
    public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { 
     double height = splitPane.getHeight(); 
     double dividerPositionFromTop = 100; 
     splitPane.setDividerPosition(0, dividerPositionFromTop/height); 
    } 
}); 
splitPane.getItems().addAll(new TextArea("1"), new TextArea("2")); 
splitPane.setOrientation(Orientation.VERTICAL); 
관련 문제