JavaFXで、2つのVBox
要素を持つシーンがあり、それぞれVBox
に複数の要素Label
がある場合。
私はトップを設定した場合VBox
には見えない、なぜ底がありませんVBox
、トップVBox
があったシーンでが上に移動しですか?
ザ・ VBox
ある目に見えないが、私は他のオブジェクトがその場所に移動することが期待されます。
FXMLを使用してコントロールをロードしています。
JavaFXで、2つのVBox
要素を持つシーンがあり、それぞれVBox
に複数の要素Label
がある場合。
私はトップを設定した場合VBox
には見えない、なぜ底がありませんVBox
、トップVBox
があったシーンでが上に移動しですか?
ザ・ VBox
ある目に見えないが、私は他のオブジェクトがその場所に移動することが期待されます。
FXMLを使用してコントロールをロードしています。
回答:
Node.setVisible(boolean)
の可視性状態を切り替えるだけNode
です。
Node
親のレイアウト計算からを除外するには、を呼び出して、管理状態を設定する必要がありますNode.setManaged(false)
。
可視性とともに管理状態を自動的に更新する場合は、@ jewelseaが指摘したようにバインディングを使用できます。 node.managedProperty().bind(node.visibleProperty());
setVisibleとmanagedPropertyを一緒に使用してみてください。次に例を示します。
myHBox.setVisible(false);
myHBox.managedProperty().bind(myHBox.visibleProperty());
VBox
は単に見えずremoved
、その親からではないからです。