Domanda

Come faccio a impostare Z-ordine per VBox in JavaFX?

È stato utile?

Soluzione

Z-ordine in JavaFX è in realtà l'ordine in scenegraph, es. nella sequenza contenuto della scena (poi il contenuto dei gruppi, contenitori, ecc.).

Tutti i nodi hanno anche toFront () e le funzioni toBack () per contribuire a cambiare questo ordine. Per un controllo più fine, è necessario rimuovere i nodi da un posto e inserirla superiore o inferiore nella sequenza.

Altri suggerimenti

Con le funzioni toFront () e toBack () si può infatti influenzare l'ordine z, ma essere consapevoli che questo influenza anche il layout. Il HBox e VBox per esempio anche utilizzare la sequenza dei bambini per fare il layout e lo spostamento qualcosa verso la parte anteriore si muoverà fino alla fine del [HV] Box. Questo potrebbe non essere quello che stai cercando.

Ero alla ricerca di un modo per fare un'animazione con il nodo animato in cima a tutti gli altri, senza rovinare il layout. Sembra che ci sia alcun modo di farlo perché lo z-ordine e l'ordine di layout sono entrambi presi dal bambino-ordine.

Mentre le altre risposte sono ancora corretti, JavaFX 9 aggiunto un modo per manipolare l'ordine Z senza modificare la lista dei bambini. Questo viene fatto con la proprietà Node.viewOrder .

Javadoc:

Definisce il rendering e il commissionamento di questo Node all'interno del suo genitore.

Questa proprietà viene utilizzata per alterare il rendering e commissionamento di un nodo all'interno del suo genitore senza riordinare la lista children del genitore. Ad esempio, questo può essere usato come un modo più efficiente per realizzare tale trasparenza smistamento. Per fare questo, un'applicazione può assegnare il valore viewOrder di ciascun nodo alla distanza calcolata tra quel nodo e lo spettatore.

Il genitore attraverserà la sua children in ordine decrescente viewOrder. Ciò significa che un bambino con un viewOrder inferiore sarà di fronte a un bambino con una viewOrder più alto. Se due figli hanno lo stesso viewOrder, il genitore li attraversare nell'ordine in cui appaiono nella lista children del genitore.

Tuttavia, viewOrder non altera il layout e messa a fuoco ordine di attraversamento di questa Node all'interno del suo genitore. Un genitore attraversa sempre la sua lista children al fine quando si fa il layout o messa a fuoco attraversamento.

Valore predefinito:

0.0

Dal:

9

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top