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、その親からではないからです。