質問
Zオーダーを設定するにはどうすればよいですか VBox
Javafxで?
解決
JavafxのZオーダーは、実際にはシーングラフの順序です。シーンのコンテンツシーケンス(次に、グループ、コンテナなどのコンテンツで)。
すべてのノードには、この順序の変更に役立つtofront()およびtoback()機能もあります。より細かい制御のために、1つの場所からノードを削除し、シーケンスでより高くまたは低挿入する必要があります。
他のヒント
tofront()とtoback()関数を使用すると、実際にzオーダーに影響を与えることができますが、これもレイアウトに影響することに注意してください。たとえば、HboxとVboxは子供のシーケンスを使用してレイアウトを実行し、何かを前面に移動すると、[HV]ボックスの端に移動します。これはあなたが探しているものではないかもしれません。
レイアウトを台無しにすることなく、他のすべてのアニメーションノードを使用してアニメーションを行う方法を探していました。 Zオーダーとレイアウトの順序はどちらも子供のオーダーから取られているため、それを行う方法はないようです。
他の答えはまだ正しいものの、Javafx 9は、子供リストを変更せずにZオーダーを操作する方法を追加しました。これはで行われます Node.viewOrder
財産。
Javadoc:
これのレンダリングとピッキング順序を定義します
Node
その親の中。このプロパティは、親の順序を並べ替えることなく、親の中のノードのレンダリングとピッキング順序を変更するために使用されます
children
リスト。たとえば、これは、透明性ソートを実装するためのより効率的な方法として使用できます。これを行うには、アプリケーションが割り当てることができますviewOrder
そのノードとビューアーの間の計算された距離への各ノードの値。親はそれを横断します
children
減少するviewOrder
注文。これは、低い子供を意味しますviewOrder
高い子供の前にいるでしょうviewOrder
. 。 2人の子供が同じ場合viewOrder
, 、親は親の順にそれらを通過しますchildren
リスト。でも、
viewOrder
このレイアウトを変更せず、これのトラバーサル順序に焦点を合わせることはありませんNode
その親の中。親は常にそれを横断しますchildren
レイアウトまたはフォーカストラバーサルを実行するときの順序でリストします。デフォルト値:
0.0
以来:
9