Как исправить наложение меток на GridPane по индексу (0,0)? Кажется, он игнорирует мой ввод в функцию

Я пытаюсь создать базовый экран входа в систему в javafx, используя макет GridPane. Проблема в том, что все метки, которые я помещаю в сетку, занимают позицию (0,0), по-видимому, игнорируя мои значения для индексов столбцов и строк.

Я пробовал помещать экстремальные значения для индексов в оба вызова функций, и ничего не меняется. Кажется, он игнорирует любые индексы, которые я ему даю, и по умолчанию равен (0,0).

Настройка GridPane:

GridPane grid = new GridPane();
grid.setPadding(new Insets(10, 10, 10, 10));
grid.setVgap(10);
grid.setHgap(10);

Функция вызывает метки:

// Name label
    Label nameLabel = new Label("Username:");
    GridPane.setConstraints(grid, 0, 0);     

// Password label
   Label passLabel = new Label("Password:");
   GridPane.setConstraints(grid, 0, 1);      

Добавление GridPane в сцену:

grid.getChildren().addAll(nameLabel, nameInput, passLabel, passInput, loginButton);
Scene scene = new Scene(grid, 300, 200);

person Ryan Button    schedule 21.10.2019    source источник
comment
В качестве альтернативы ответу @Sedrick: просто используйте метод add для GridPane. Это гораздо лаконичнее...   -  person fabian    schedule 21.10.2019


Ответы (1)


Вы используете GridPane.setConstraints(); неправильно. Вместо того, чтобы устанавливать ограничения на grid, вы должны устанавливать ограничения на узлы. Примеры:

// Name label
Label nameLabel = new Label("Username:");
GridPane.setConstraints(nameLabel, 0, 0);     

// Password label
Label passLabel = new Label("Password:");
GridPane.setConstraints(passLabel, 0, 1);   

Дополнительные сведения см. в javadocs.

person Sedrick    schedule 21.10.2019