2017-01-23 8 views
3

内の項目がある場合、私は、次のコードを持っている:のJavaFX:をSplitPaneのサイズを変更するにデバイダ位置を変更

public class JavaFxApplication2 extends Application { 

    @Override 
    public void start(Stage stage) throws Exception { 
     SplitPane splitPane=new SplitPane(); 
     VBox vBox1=new VBox(); 
     vBox1.setStyle("-fx-background-color: red"); 
     VBox vBox2=new VBox(); 
     vBox2.setStyle("-fx-background-color: blue"); 
     splitPane.getItems().add(vBox1); 
     splitPane.getItems().add(vBox2); 
     splitPane.getDividers().get(0).setPosition(0); 
     Scene scene=new Scene(splitPane, 200, 400); 
     stage.setScene(scene); 
     stage.show(); 
    } 
} 

これは、出力Iは、アプリケーションを実行すると次のとおりです。
enter image description here
を今、私はサイズを変更して、ステージを大きくします:
enter image description here
分母の位置が分かりましたので、現在は0ではありません。サイズ変更時に分周器の位置の変更を無効にする方法はありますか?

答えて

4

SplitPaneに含まれるすべてのノードのサイズがデフォルトで変更されるため、「放浪ディバイダ」になります。

あなたは左VBoxのサイズ変更を避けるためにsetResizableWithParentを使用することができます。

SplitPane.setResizableWithParent(vBox1, false); 

をSplitPane のサイズが変更されたときをSplitPane内のノードがサイズ変更可能かどうかに設定します。 デフォルトでは、すべてのノードはサイズ変更可能です。値をfalseに設定すると、ノードのサイズが変更されなくなります。

あなたはサイズを変更する権利VBoxしたくない場合は、このメソッドは、そのノードに対して呼び出す必要があります。

+0

ありがとうございます。しかし、私は、vboxをサイズ変更可能にしたい。私は仕切りの位置がその価値を変えることを望んでいません。アプリケーションを実行すると、両方のvboxがサイズ変更可能ですが、分割位置は0です。 –

+1

'VBox 'はサイズ変更可能なままで、分割ペイン自体のサイズが変更されると、自動的にサイズ変更されません(分割線は移動しません)。 – DVarga

関連する問題