getChildren () add () и add () - PullRequest
       28

getChildren () add () и add ()

0 голосов
/ 27 апреля 2019

почему иногда мы используем getChildren () add (), а другие - вместо этого напрямую используем add () es: https://docs.oracle.com/javafx/2/get_started/form.htm

Example 4–4 Button
Button btn = new Button("Sign in");
HBox hbBtn = new HBox(10);
hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
hbBtn.getChildren().add(btn);
grid.add(hbBtn, 1,`enter code here`
grid.add(userTextField, 1, 1);
Label pw = new Label("Password:");
grid.add(pw, 0, 2);
PasswordField pwBox = new PasswordField();
grid.add(pwBox, 1, 2);)

Пример 4–3 Элементы управления

Text scenetitle = new Text("Welcome");
scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20));
grid.add(scenetitle, 0, 0, 2, 1);
Label userName = new Label("User Name:");
grid.add(userName, 0, 1);
TextField userTextField = new TextField();

1 Ответ

1 голос
/ 27 апреля 2019

Afaik only GridPane предоставляет метод add напрямую. Этот метод существует для сокращения необходимого кода для добавления дочернего элемента и назначения индекса строки / столбца (и диапазона столбца / строки). Вам нужно назначить индексы строк / столбцов почти для всех потомков GridPane, поэтому эти методы полезны.

gridPane.add(child1, column1, row1);

gridPane.add(child2, column2, row2, columnSpan, rowSpan);

намного короче

GridPane.setColumnIndex(child1, column1);
GridPane.setRowIndex(child1, row1);
gridPane.getChildren().add(child1);

GridPane.setColumnIndex(child2, column2);
GridPane.setRowIndex(child2, row2);
GridPane.setColumnSpan(child2, columnSpan);
GridPane.setRowSpan(child2, rowSpan);
gridPane.getChildren().add(child2);

Другие макеты, такие как VBox, не предоставляют такой метод, поскольку дочерние элементы располагаются на основе порядка в списке дочерних элементов, и назначение дополнительных параметров макета, таких как margin, выполняется реже.

...