2016-05-05 11 views
0

小さなロボットを制御するための子供のためのJavaFXアプリケーションを開発しています。子供はドラッグアンドドロップコマンドブロックを使ってコマンドを定義します。 対象領域は、VBoxを持つスクロールペインです。JavaFX - ScrollPane/VBox - Auto shrink

ScrollPaneとVBoxを自動化できるようにする方法があるかどうかを知りたいのですが、Greenブロックにノードを追加すると、それは大きくなり(aldeady doing)、Greenブロックからノードを削除する必要がありますシュリンク。ここで

は、コードは次のとおりです。ノードのない
enter image description here

のVBox:ノードと

// Set to BorderPane#Center<br/> 
boxCode = new VBox(0.0); 
boxCode.setMinSize(400, 80); 
// here I also set MaxSize using Double.MAX_VALUE and USE_COMPUTED_SIZE 

paneCode = new ScrollPane(boxCode); 
paneCode.setMinSize(400, 80); 
paneCode.setStyle("-fx-background-color:transparent;"); 
paneCode.setVbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED); 
layout.setCenter(paneCode); 

のVBoxここ
enter image description here

は私のプロジェクトです:GitHub - Programming Block

ありがとうございました!

+0

VBoxのminWidthを適切に設定するだけで済みます。 vbox.setMinWidth(someValue) – jns

+0

忘れてしまって申し訳ありません。私はコードといくつかの写真を表示するように編集しました。 ScenicViewを使って検査しましたが、VBoxは実際には縮小されていますが、ScrollPaneは縮小されていません。最後の最大サイズを維持しています。 –

+0

'ScrollBar'を表示しない場合、なぜ' ScrollPane'が必要ですか? – fabian

答えて

1

問題を理解しているかどうかはわかりません。私がVBoxScrollPaneのminHeightを下の例のように設定すると、私にとってはうまくいきます。

public void start(Stage primaryStage) { 

     Button btnAdd = new Button("add"); 
     Button btnRemove = new Button("remove"); 
     VBox box = new VBox(btnAdd, btnRemove); 
     box.setStyle("-fx-border-color:red"); 

     btnAdd.setOnAction(e -> box.getChildren().add(new Label("test"))); 

     btnRemove.setOnAction(e -> { 
      int idx = box.getChildren().size(); 
      box.getChildren().remove(idx - 1); 
     }); 

     ScrollPane scrollPane = new ScrollPane(box); 
     scrollPane.setMinHeight(200); 
     box.setMinHeight(200) ; 

     BorderPane root = new BorderPane(scrollPane); 

     primaryStage.setScene(new Scene(root, 300, 300)); 
     primaryStage.show(); 
    } 
+0

あなたのコードを読んだ後、私はあなたのように見えるようにコードをきれいにして、問題を見つけました。ありがとうございました! 今私は左のバーをこの動作を中断することなく成長させるために他の方法を試みます。 –

+0

誰かのためにこのようなものを試してみると、私は以下の解決策を使用しました。 [JavaFxでウィンドウのサイズを変更するときに画像のサイズを変更する方法](http://stackoverflow.com/questions/22993550/how-to-resize-an-image-when-resizing-the-window-in-javafx) –