JavaFX рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓: рдЙрдиреНрдирдд рд▓реЗрдЖрдЙрдЯ

рдЙрдиреНрдирдд рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ JavaFX рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ GUI рдШрдЯрдХреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХреИрд╕реЗ рдХрд░реЗрдВред

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА JavaFX рд▓реЗрдЖрдЙрдЯреЛрдВ рдХреЛ рджреЗрдЦрд╛ред рдЕрдм рдмрд╛рдХреА рдЙрдкрд▓рдмреНрдз рд▓реЗрдЖрдЙрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

  1. JavaFX рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓: рдЖрд░рдВрдн рдХрд░рдирд╛
  2. JavaFX рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓: рдирдорд╕реНрдХрд╛рд░ рджреБрдирд┐рдпрд╛!
  3. JavaFX рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓: FXML рдФрд░ рджреГрд╢реНрдп
  4. JavaFX рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓: рдмреЗрд╕рд┐рдХ рд▓реЗрдЖрдЙрдЯ
  5. JavaFX рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓: рдЙрдиреНрдирдд рд▓реЗрдЖрдЙрдЯ
  6. JavaFX рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓: рд╕реАрдПрд╕рдПрд╕ рд╕реНрдЯрд╛рдЗрд▓
  7. JavaFX рд╡реАрд╡рд░: JavaFX рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ

AnchorPane


AnchorPane рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд▓реЗрдЖрдЙрдЯ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд▓реЗрдЖрдЙрдЯ рдХреЗ рднреАрддрд░ рдШрдЯрдХреЛрдВ рдХреЛ рдПрдВрдХрд░ рдкреЙрдЗрдВрдЯреНрд╕ (рдПрдВрдХрд░) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред 4 рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рдВрдЧрд░ рд╣реИрдВ:

  • рд╢реАрд░реНрд╖ (рдКрдкрд░)
  • рдиреАрдЪреЗ (рдиреАрдЪреЗ)
  • рдмрд╛рдПрдВ (рдмрд╛рдПрдВ)
  • рд╕рд╣реА (рджрд╛рдПрдВ)

рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдореЗрдВ рдПрдВрдХрд░реЛрдВ рдХрд╛ рдХреЛрдИ рд╕рдВрдпреЛрдЬрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╢реВрдиреНрдп рд╕реЗ рд▓реЗрдХрд░ рдЪрд╛рд░реЛрдВ рддрдХред

рдПрдХ рдШрдЯрдХ рдХреЛ рд▓рдВрдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдирд╛рд░реЗ рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджреВрд░реА рд░рдЦрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреАрдУрдкреА)ред рд▓реЗрдЖрдЙрдЯ рдХреЗ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рднреА рдпрд╣ рджреВрд░реА рдмрдиреА рд░рд╣рддреА рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдПрдВрдХрд░ рд░рд╛рдЗрдЯ = 10 рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдШрдЯрдХ рд▓реЗрдЖрдЙрдЯ рдХреЗ рджрд╛рд╣рд┐рдиреЗ рдХрд┐рдирд╛рд░реЗ рд╕реЗ 10 рдХреА рджреВрд░реА рд░рдЦреЗрдЧрд╛ред

рдЖрдк рджреЛ рдПрдВрдХрд░ рдмрд┐рдВрджреБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдШрдЯрдХ рдХреЛ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдиреЗ рдореЗрдВ рд╕реНрдиреИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред

рдмрд╛рдзреНрдпрдХрд╛рд░реА TOP = 10 , RIGHT = 10 рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдШрдЯрдХ рджреЛрдиреЛрдВ рдХрд┐рдирд╛рд░реЛрдВ рд╕реЗ 10 рдХреА рджреВрд░реА рдкрд░ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд░рд╣реЗрдЧрд╛ред



рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╡рд┐рдВрдбреЛ рдХреЗ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд▓рдВрдЧрд░ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд┐рдВрдбреЛ рдХреЗ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рдЕрдкрдиреЗ рдШрдЯрдХ рдХреЛ рдмрдврд╝рд╛ / рдШрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред



рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • LEFT + RIGHT рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рд╣реИ
  • рд╢реАрд░реНрд╖ + рдмреЙрдЯрдо рд▓рдВрдмрд╡рдд рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рд╣реИ
  • рд╕рднреА 4 рдПрдВрдХрд░реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдШрдЯрдХ рдХреЗ рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рджреЛрдиреЛрдВ рдЖрдХрд╛рд░

рдПрдлрдПрдХреНрд╕рдПрдордПрд▓ рдореЗрдВ рдПрдВрдХрд░ рдкреЙрдЗрдВрдЯреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рднреА рдЪрд╛рд░ рдПрдВрдХрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдХрд┐рд╕реА рднреА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред

<AnchorPane> <Button AnchorPane.topAnchor="10" AnchorPane.leftAnchor="10" AnchorPane.rightAnchor="10" AnchorPane.bottomAnchor="10">I am fully anchored!</Button> </AnchorPane> 

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 AnchorPane anchorPane = new AnchorPane(); Button button = new Button("I am fully anchored!"); AnchorPane.setTopAnchor(button, 10d); AnchorPane.setBottomAnchor(button, 10d); AnchorPane.setLeftAnchor(button, 10d); AnchorPane.setRightAnchor(button, 10d); anchorPane.getChildren().add(button); 

GridPane


рдЧреНрд░рд┐рдбрдкреИрдб рдПрдХ рд▓реЗрдЖрдЙрдЯ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЯрд╛рдЗрд▓рдкреИрди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬреЛ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдШрдЯрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ, рдкреНрд░рддреНрдпреЗрдХ рдирдП рдШрдЯрдХ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЗрд╕рдХреЗ рд╕реНрдерд╛рди рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред



 <GridPane hgap="10" vgap="10"> <Label GridPane.rowIndex="0" GridPane.columnIndex="0">First</Label> ... </GridPane> 

рдЬрд╛рд╡рд╛ рдореЗрдВ, рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рд╣рдо рдкрд╣рд▓реЗ ColumnIndex (x) рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдлрд┐рд░ RowIndex (y) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

  GridPane grid = new GridPane(); grid.add(new Label("Hello!"), columnIndex, rowIndex); 

рд░рд┐рдХреНрддрд┐


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рддрд╛рд▓рд┐рдХрд╛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдХреЛрдИ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИред рдШрдЯрдХ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╣реИрдВ, рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдмрд┐рдирд╛ред рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рд▓рдВрдмрд╡рддред
  • hgap рдХреНрд╖реИрддрд┐рдЬ рд░рд┐рдХреНрддрд┐ (рдХреЙрд▓рдо рдХреЗ рдмреАрдЪ) рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
  • vgap рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд░рд┐рдХреНрддрд┐ (рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ) рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ

 <GridPane hgap="10" vgap="10"> ... </GridPane> 

рдЬрд╛рд╡рд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдВрддрд░:

 GridPane grid = new GridPane(); grid.setHgap(10); grid.setVgap(10); 

рдХрдИ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдХреНрддрд┐


GridPane рдореЗрдВ рдШрдЯрдХ рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ / рдпрд╛ рд╕реНрддрдВрднреЛрдВ рдХреЛ рдлреИрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред Rowspan рдХреЗ рд╕рд╛рде рдШрдЯрдХ рдЕрдкрдиреЗ рдореВрд▓ рд╕реЗрд▓ рд╕реЗ рдиреАрдЪреЗ рддрдХ рдлреИрд▓реА рд╣реБрдИ рд╣реИред рдХреЛрд▓рд╕реНрдкреИрди рдШрдЯрдХ рджрд╛рдИрдВ рдУрд░ рдлреИрд▓рддрд╛ рд╣реИред


Java рдореЗрдВ, rowSpan рдФрд░ columnSpan рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдШрдЯрдХ рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 grid.add(component, columnIndex, rowIndex, columnSpan, rowSpan); 

рдпрд╛ рдЧреНрд░рд┐рдбрдкреЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ:

 GridPane.setColumnSpan(component, columnSpan); GridPane.setRowSpan(component, rowSpan); 

рдЖрдХрд╛рд░ (рдЖрдХрд╛рд░)


рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХреА рдереАрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╣реЛрдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рддрд╛рд▓рд┐рдХрд╛ рд╕реЗрд▓ рдЖрдХрд╛рд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:
  • рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреА рдКрдВрдЪрд╛рдИ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рддрддреНрд╡ рд╣реИ
  • рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЙрд▓рдо рдХреЗ рд╕рдмрд╕реЗ рдЪреМрдбрд╝реЗ рддрддреНрд╡ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИ

рд╕реНрддрдВрдн рдФрд░ рдкрдВрдХреНрддрд┐ рдХреА рдХрдореА


рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕реНрддрдВрдн рдФрд░ рдкрдВрдХреНрддрд┐ рдЖрдХрд╛рд░ рдкреИрдирд▓ рдХреЗ рднреАрддрд░ рдШрдЯрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреЙрд▓рдо рдФрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП, ColumnContstraints рдФрд░ RowConstraints рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдпрд╛ рддреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╕реНрдерд╛рди рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ, рдпрд╛ рдкрд╕рдВрджреАрджрд╛ рдЪреМрдбрд╝рд╛рдИ / рдКрдВрдЪрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред рдмрд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдХреЙрд▓рдо рдФрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рдкрд╕рдВрджреАрджрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд╛ рдкреНрд░рддрд┐рд╢рдд


рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЖрдк рдЙрдкрд▓рдмреНрдз рд╕реНрдерд╛рди рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рдкрдВрдХреНрддрд┐ рдпрд╛ рд╕реНрддрдВрдн рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬрдм рдЖрдк рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдирдП рдЖрдХрд╛рд░ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдФрд░ рдХреЙрд▓рдо рднреА рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред

 <GridPane> <columnConstraints> <ColumnConstraints percentWidth="50" /> <ColumnConstraints percentWidth="50" /> </columnConstraints> <rowConstraints> <RowConstraints percentHeight="50" /> <RowConstraints percentHeight="50" /> </rowConstraints> ... </GridPane> 

рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг:

 GridPane gridPane = new GridPane(); ColumnConstraints col1 = new ColumnConstraints(); col1.setPercentWidth(50); ColumnConstraints col2 = new ColumnConstraints(); col2.setPercentWidth(50); gridPane.getColumnConstraints().addAll(col1, col2); RowConstraints row1 = new RowConstraints(); row1.setPercentHeight(50); RowConstraints row2 = new RowConstraints(); row2.setPercentHeight(50); gridPane.getRowConstraints().addAll(row1, row2); 

рдкреВрд░реНрдг рдЖрдХрд╛рд░


рдЖрдХрд╛рд░ рдХреЛ рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдкрд╕рдВрджреАрджрд╛ рдФрд░ рдиреНрдпреВрдирддрдо рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рдкрдВрдХреНрддрд┐ / рд╕реНрддрдВрдн рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЙрд▓рдо hgrow рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ vgrow рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реЛрддреА рд╣реИред

рдЗрди рдЧреБрдгреЛрдВ рдХреЗ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд░реНрде рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

  • рдХрднреА рдирд╣реАрдВ : рд▓реЗрдЖрдЙрдЯ рдХреЗ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рдХрднреА рдмрдврд╝рддрд╛ рдпрд╛ рдШрдЯрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиред
  • ALWAYS : ALWAYS: рдЬрдм рдЖрдк рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдорд╛рди рд╡рд╛рд▓реА рд╕рднреА рд╡рд╕реНрддреБрдПрдБ рдпрд╛ рддреЛ рдЙрдкрд▓рдмреНрдз рд╕реНрдерд╛рди, рдпрд╛ рд╢реНрд░рдЧ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦрд┐рдВрдЪ рдЬрд╛рддреА рд╣реИрдВред
  • SOMETIMES (SOMETIMES): рдЗрди рддрддреНрд╡реЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдХреЗрд╡рд▓ рддрднреА рдмрджрд▓рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рдЕрдиреНрдп рддрддреНрд╡ рди рд╣реЛрдВред


 <GridPane> <columnConstraints> <ColumnConstraints minWidth="50" prefWidth="100" /> <ColumnConstraints minWidth="50" prefWidth="100" hgrow="SOMETIMES" /> </columnConstraints> <rowConstraints> <RowConstraints minHeight="50" prefHeight="100" /> <RowConstraints minHeight="50" prefHeight="100" vgrow="SOMETIMES" /> </rowConstraints> ... </GridPane> 

рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг:

  GridPane gridPane = new GridPane(); ColumnConstraints col1 = new ColumnConstraints(); col1.setMinWidth(50); col1.setPrefWidth(100); ColumnConstraints col2 = new ColumnConstraints(); col2.setMinWidth(50); col2.setPrefWidth(100); col2.setHgrow(Priority.SOMETIMES); gridPane.getColumnConstraints().addAll(col1, col2); RowConstraints row1 = new RowConstraints(); row1.setMinHeight(50); row1.setPrefHeight(100); RowConstraints row2 = new RowConstraints(); row2.setMinHeight(50); row2.setPrefHeight(100); row2.setVgrow(Priority.SOMETIMES); gridPane.getRowConstraints().addAll(row1, row2); 

рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдХреНрд╕рд╣рд╛рдЗрдЯ рдФрд░ рдореИрдХреНрд╕рд╡рд┐рдб рдкреИрд░рд╛рдореАрдЯрд░ (рдЕрдзрд┐рдХрддрдо рдКрдВрдЪрд╛рдИ рдФрд░ рд░реЗрдЦрд╛) рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

BorderPane


рдмреЙрд░реНрдбрд░рдкреИрди рдПрдХ рдкрд╛рдВрдЪ-рдЦрдВрдб рд▓реЗрдЖрдЙрдЯ рд╣реИ:

  • рд╢реАрд░реНрд╖ (рд╢реАрд░реНрд╖)
  • рдиреАрдЪреЗ (рдиреАрдЪреЗ)
  • рд░рд╛рдЗрдЯ (рджрд╛рдПрдВ)
  • рд╡рд╛рдо (рдмрд╛рдПрдВ)
  • рдХреЗрдВрджреНрд░ (рдХреЗрдВрджреНрд░)



рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реАрдорд╛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 <BorderPane> <top> <Label>TOP</Label> </top> <bottom> <Label>BOTTOM</Label> </bottom> <left> <Label>LEFT</Label> </left> <right> <Label>RIGHT</Label> </right> <center> <Label>CENTER</Label> </center> </BorderPane> 

рдЕрдм рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг:

 Label top = new Label("TOP"); Label bottom = new Label("BOTTOM"); Label left = new Label("LEFT"); Label right = new Label("RIGHT"); Label center = new Label("CENTER"); BorderPane borderPane = new BorderPane(); borderPane.setTop(top); borderPane.setBottom(bottom); borderPane.setLeft(left); borderPane.setRight(right); borderPane.setCenter(center); 

рдЖрдХрд╛рд░ (рдЖрдХрд╛рд░)


рдХреЗрдВрджреНрд░реАрдп ( рдХреЗрдВрджреНрд░ ) рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдХреЗрдВрджреНрд░ рдлрд┐рд░ рдмрд╛рдХреА рдЬрдЧрд╣ рдХреЛ рднрд░рддрд╛ рд╣реИред

рдКрдкрд░реА ( рд╢реАрд░реНрд╖ ) рдФрд░ рдирд┐рдЪрд▓реЗ ( рдирд┐рдЪрд▓рд╛ ) рдХреНрд╖реЗрддреНрд░ рдкреВрд░реЗ рдЙрдкрд▓рдмреНрдз рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдерд╛рди рдкрд░ рдЦрд┐рдВрдЪрд╛рд╡ рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХреА рдКрдВрдЪрд╛рдИ рдШрдЯрдХ рдХреА рдКрдВрдЪрд╛рдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред

рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрдерд╛рди рднрд░реЗрдВ (рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╡реЗ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдХрдмреНрдЬрд╛ рдХрд░рддреЗ рд╣реИрдВ)ред рдЙрдирдХреА рдЪреМрдбрд╝рд╛рдИ рдШрдЯрдХ рдХреА рдЪреМрдбрд╝рд╛рдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред

рдХреЗрдВрджреНрд░ рдЖрдХрд╛рд░ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд╣реИ рдФрд░ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЗ рдХрдмреНрдЬреЗ рдореЗрдВ рдирд╣реАрдВ рднрд░рддрд╛ рд╣реИред рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:



рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ


рдЕрдм рдЬрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╣рдо CSS рдХреЗ рд╕рд╛рде JavaFX рдШрдЯрдХреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╢реИрд▓реА рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/hi477408/


All Articles