Video: JavaFX GUI Crash Course #13 - AnchorPane Layout in JavaFX 2025
En ankerpanel i JavaFX ligner på en kantrute ved at den lar deg plassere noder i forhold til en av kantene på ruten. Her er imidlertid flere viktige forskjeller:
-
I et grensefelt er oppdelingsområdet delt inn i fem forskjellige områder: topp, høyre, bunn, venstre og sentrum. Et ankerpanel deler ikke oppsettet i forskjellige områder. I stedet kan hver knute i oppsettet knyttes - eller forankret - til en eller flere av de fire kantene i layoutområdet. Når en knute er forankret til en kant, vil ankerpanelet plassere knutepunktet så nært som mulig til kanten etter at det er tillatt å bruke andre knuter.
-
En knute kan forankres til mer enn én kant. For eksempel kan en knute forankres til topp og høyre kanter, som vil plassere knuten i øverste høyre hjørne av oppsettet.
-
Hvis en node er forankret til motsatte kanter (øverst og nederst eller til venstre og høyre), blir noden trukket mot begge kanter av oppsettet. Dette resulterer i at noden strekkes ettersom størrelsen på oppsettet øker.
-
Mer enn ett knutepunkt kan forankres til hver kant. I så fall vil nodene overlappe som de ville i en stabelrute.
Følgende tabell viser konstruktørene og metodene til AnchorPane-klassen, som du bruker til å lage en ankerrute.
Constructor | Beskrivelse |
---|---|
AnchorPane () | Oppretter en tom ankerrute. |
AnchorPane (Nod … barn) | Oppretter en ankerrute med de angitte barnnodene. |
Metode | Beskrivelse |
ObservableList
getChildren () |
Returnerer samlingen av alle barnnoder som er lagt til
i ankerpanelet. Samlingen returneres som en observableList-type, som inkluderer metodene add and addAll, som lar deg legge til en eller flere noder på listen. |
statisk tomt setTopAnchor (Node node, Dobbel
verdi) |
Forankrer den angitte noden til toppkanten. Verdi
angir offset fra kanten. |
statisk tomt settRightAnchor (Node node, Dobbel
verdi) |
Forankrer den angitte noden til høyre kant. Verdi
angir offset fra kanten. |
statisk tomt settBottomAnchor (Node node,
Dobbel verdi) |
Forankrer den angitte noden til nederste kant. Verdi
angir offset fra kanten. |
statisk tomt setLeftAnchor (Node node, Dobbel
verdi) |
Forankrer den angitte noden til venstre kant. Verdi
angir offset fra kanten. |
tomgangssettMinHeight (dobbel verdi) | Angir minimumshøyde på ankerpanelet. |
tomt settMaxHeight (dobbel verdi) | Angir maksimal høyde på ankerpanelet. |
void setPrefHeight (dobbel verdi) | Angir ønsket høyde på ankerpanelet. |
void setMinWidth (dobbel verdi) | Angir minimumsbredden på ankerpanelet. |
tomt settMaxWidth (dobbel verdi) | Angir maksimal bredde på ankerpanelet. |
void setPrefWidth (dobbel verdi) | Angir ønsket bredde på ankerpanelet. |
tomrumsinnstillingPadding (Innsettingsverdi) | Angir polstringen rundt innsiden av bunken
. |
For å lage en forankringsrute, ring AnchorPane-konstruktøren og pass nodene du vil legge til. For eksempel:
Rektangel r1 = nytt rektangel (400, 200); r1. setFill (Color. LIGHTGRAY); Rektangel r2 = Ny rektangel (200, 400); r2. setFill (Color. DARKGRAY); AnchorPane anker = nytt ankerpanel (r1, r2);
Her er et par rektangler, en 400 × 200, den andre 200 × 400, opprettet. Den ene er fylt lys grå, den andre mørkegrå. Deretter opprettes et ankerrute og de to rektanglene blir lagt til.
Du bruker deretter setTopAnchor-, setRightAnchor-, setBottomAnchor- og setLeftAnchor-metodene for å forankre knutene til kantene på ankerpanelet. Hver av disse metodene aksepterer to parametre: noden du vil forankre og en offset-verdi som lar deg forankre noden en viss avstand fra kanten.
For eksempel å forankre rektangel r1 til topp og venstre kant og rektangel r2 til topp og høyre kanter, bruk disse linjene:
anker. setTopAnchor (r1, 0. 0); anker. setLeftAnchor (r1, 0. 0); anker. setTopAnchor (r2, 0. 0); anker. setRightAnchor (r2, 0. 0);
Følgende viser hvordan denne ankerruden vil vises når den vises i en scene.
Vinduet øverst i figur 1 viser hvordan denne ruten vises når den først vises. Her kan du se hvordan lysgrå rektangel er forankret øverst til venstre i layouten, og det mørkegrå rektangel er forankret øverst til høyre.
Ankerruten er opprinnelig dimensjonert slik at innholdet passer godt. Som et resultat overlapper det mørkegrå rektangel det lysegrå rektangel. Vinduet i bunnen av figuren viser hvordan utformingen vises når brukeren strekker vinduet, slik at ankerlayoutpanelet kan vokse. Når forankringsruten blir bredere, forblir det lysegrå rektangel i øverste venstre hjørne av oppsettet, mens det mørkegrå rektanglet følger øverste høyre hjørne av ruten. Dermed er rektanglene skilt.
