2016-12-29 21 views
0

ウィンドウのサイズを変更した後、SplitPaneのディバイダは指定された割合に従って別の位置に移動します(dividerPositions = "0.05"など)。JavaFXのSplitPanesでパーセンテージではなくピクセルに分割位置をバインドするにはどうすればよいですか?

しかし、以前に設定されていたサイズ変更後(ピクセルサイズにバインドされていて、パーセンテージではないように)同じ位置にとどまりたいです。私は親ペインのサイズを変更しながら "移動"(パーセンテージ制約に従う)したくない。

どういうわけかできますか? (私はコードから、好ましくは、この問題を解決したい、CSSのソリューションは、私のために二次的である)

私のための完璧なソリューションは何かがこのようになります

dividerPositionFromTopは悲しそうでは存在しません
<SplitPane orientation="VERTICAL" dividerPositionFromTop="100px" 
      AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" 
      AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" > 
... 
</SplitPane> 

私の知識。

答えて

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); 
関連する問題