Вступ до JavaFX GridPane

JavaFX GridPane - це контейнер, який розміщує своїх дітей у сітці. Існують певні правила щодо розміру комірок у GridPane. Тобто, підряд, усі комірки будуть мати однакову висоту, тоді як у стовпці всі комірки матимуть однакову ширину. Java GridPane можна інстанціювати з класу javafx.scene.layout.GridPane. Кількість стовпців та рядків на цій панелі визначатиметься компонентами, які додаються до неї. Тепер давайте подивимося на синтаксис GridPane.

Синтаксис JavaFX GridPane

Синтаксис GridPane наведений нижче.

GridPane gp = new GridPane();

Конструктори

Конструктори JavaFX GridPane такі:

  • GridPane () :

Буде створено макет GridPane з вирівнюванням TOP_LEFT та hgap або vgap, рівним 0.

Властивості JavaFX GridPane

Java GridPane має кілька властивостей. Вони є :

  • вирівнювання:

Вирівнювання сітки в межах висоти та ширини панелі.

  • hgap:

Ширина горизонтальної щілини між стовпцями.

  • vgap:

Вертикальна висота зазору між рядами.

  • gridLinesVisible:

Ця властивість використовується в основному для налагодження. Тобто він контролює, чи відображаються рядки з метою відображення рядків і стовпців Gridpane.

Методи JavaFX GridPane

У Java GridPane є кілька методів, які виконують різні функції.

Деякі з найбільш часто використовуваних методів пояснюються нижче.

  • clearConstraints (Nodechild): обмеження GridPane будуть видалені з дочірнього вузла.
  • computeMinWidth (подвійна висота): мінімальна ширина області буде обчислена за допомогою цього методу.
  • computeMinHeight (подвійна ширина): мінімальна висота області буде обчислена за допомогою цього методу.
  • getAlignment (): значення властивості вирівнювання буде повернуто.
  • setAlignment (Posvalue): буде встановлено значення властивості вирівнювання.
  • getMargin (Nodechild): значення обмежень поля буде повернуто.
  • computePrefWidth (подвійна висота): бажана ширина для області, яка потрібна для даної висоти, буде обчислена.
  • computePrefHeight (подвійна ширина): бажана висота для області, яка потрібна для заданої ширини, буде обчислена.

Приклади реалізації JavaFX GridPane

Тепер давайте подивимося різні програми JavaFX.

Приклад №1

Програма Java для демонстрації області сітки

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
public class JavaFXGridPaneExample extends Application (
//application starts at this point
@Override
public void start(Stage s) throws Exception (
//create label 1
Label lbl1=new Label("Name of the Guardian");
//create label 2
Label lbl2=new Label("Your name (IN CAPITALS ) ");
//create textfield 1
TextField t1=new TextField();
//create textfield 2
TextField t2=new TextField();
//create a button
Button b=new Button ("Click me ! !");
//create gridpane
GridPane gp=new GridPane();
//create scene
Scene sc = new Scene(gp, 500, 300);
//first row
gp.addRow(0, lbl1, t1);
//second row
gp.addRow(1, lbl2, t2);
//third row
gp.addRow(2, b);
//set scene
s.setScene(sc);
//display result
s.show();
)
//main method
public static void main(String() args) (
launch(args);
)
)

Вихід

При виконанні коду відображаються два текстових поля з 2 мітками та кнопкою. Ці текстові поля та кнопки знаходяться на різних рядках.

Приклад №2

Програма Java для демонстрації області сітки з рядками та стовпцями

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
//class that extends application class
public class JavaFXGridPaneExample extends Application (
//application starts at this point
@Override
public void start(Stage s) throws Exception (
//set title
s.setTitle("GridPane Example");
//create buttons
Button b1 = new Button("This is Button A");
Button b2 = new Button("This is Button B");
Button b3 = new Button("This is Button C");
Button b4 = new Button("This is Button D");
Button b5 = new Button("This is Button E");
Button b6 = new Button("This is Button F");
//create grid pane
GridPane gp = new GridPane();
//add rows and columns to the pane
gp.add(b1, 0, 0, 1, 1);
gp.add(b4, 0, 1, 1, 1);
gp.add(b2, 2, 0, 1, 1);
gp.add(b6, 1, 1, 1, 1);
gp.add(b3, 1, 0, 1, 1);
gp.add(b5, 2, 1, 1, 1);
//create scene
Scene sc = new Scene(gp, 700, 100);
//set scene
s.setScene(sc);
//display the result
s.show();
)
//main method
public static void main(String() args) (
Application.launch(args);
)
)

Вихід

Створюється панель сітки з 6 кнопок у формі матриці розміром 3 × 3. Форма матриці 3 × 3 означає, що 6 кнопок розміщені в 3 ряди та 3 стовпці.

Приклад №3

Програма Java для демонстрації сітки

import java.awt.Color;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
//class that extends Application class
public class JavaFXGridPaneExample extends Application (
//application starts at this point
@Override
public void start(Stage s) throws Exception (
//create label 1
Label lbl1=new Label("Name of the Guardian");
//create label 2
Label lbl2=new Label("Your name (IN CAPITALS ) ");
//create textfield 1
TextField t1=new TextField();
//create textfield 2
TextField t2=new TextField();
//create a button
Button b=new Button ("Click me ! !");
//create gridpane
GridPane gp=new GridPane();
//create hbox
HBox hb = new HBox(10);
//set alignment for hbox
hb.setAlignment(Pos.BOTTOM_RIGHT);
//add the children
hb.getChildren().add(b);
gp.add(hb, 1, 4);
//create text
final Text actn = new Text();
gp.add(actn, 1, 6);
//on clicking the button
b.setOnAction(new EventHandler() (
//event that has to be triggered
@Override
public void handle(ActionEvent ev) (
//display text when the button is clicked
actn.setText("Click me button pressed");
)
));
//create scene
Scene sc = new Scene(gp, 500, 300);
//first row
gp.addRow(0, lbl1, t1);
//second row
gp.addRow(1, lbl2, t2);
//third row
gp.addRow(2, b);
//set scene
s.setScene(sc);
//display result
s.show();
)
//main method
public static void main(String() args) (
launch(args);
)
)

Вихід

З'явиться діалогове вікно з 2 текстовими полями, 1 кнопкою та двома мітками.

На відміну від вищезазначених програм, для обробки дій при натисканні кнопки в третьому ряду присутній обробник подій.

Видно, що при натисканні на кнопку відображається текст про натискання кнопки.

Висновок

У JavaFX GridPane викладає дітей у вигляді сітки, де кількість стовпців та рядків визначатиметься кількістю доданих до неї компонентів. Щоб скористатися цією панеллю, інстанціюйте з класу javafx.scene.layout.GridPane. Детальніше про панель сітки обговорюється в цьому документі докладно.

Рекомендовані статті

Це посібник по JavaFX GridPane. Тут ми обговорюємо конструктор, методи та програму для впровадження JavaFX GridPane. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Програми JavaFX
  2. Слайдер JavaFX
  3. Макети JavaFX
  4. Мітка JavaFX
  5. JavaFX VBox | Топ-15 методів JavaFX VBox
  6. Приклади меню в JavaFX