Диапазон столбцов/строк JavaFX GridPane против индекса

Я изучаю JavaFX с помощью учебника Oracle, и я запутался в этой конкретной теме. Кажется, я единственный, кто сбит с толку, поскольку мои поиски не привели к каким-либо полезным результатам. Я создаю базовую GridPane с 2 столбцами (0,1) и 3 строками (0,1,2). В первой строке у меня есть заголовок, а в двух других строках есть метка слева и текстовое поле справа — это экран входа в систему.

ВХОД
имя пользователя | [_______]
пароль | [_______]

Вот код для заполнения сетки:

    Text scenetitle = new Text("Login");
    scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20));
    grid.add(scenetitle,0,0,2,1); // Row span here is set to 1

    Label userName = new Label("User Name");
    grid.add(userName,0,1);

    TextField userTField = new TextField();
    grid.add(userTField,1,1);

    Label passName = new Label("Password");
    grid.add(passName,0,2); // Here I'm referencing a row index of 2

    TextField passTField = new TextField();
    grid.add(passTField,1,2)

Код работает отлично, так как это просто копипаста из учебника. Однако мое замешательство связано с тем, что у меня диапазон строк равен 1, но я ссылаюсь на индекс строки 2. Я пытался переключить диапазон строк и столбцов, но это испортило его, поэтому я уверен, что это правильно . Что мне не хватает?


person Alex Jones    schedule 27.06.2016    source источник


Ответы (1)


Он бывает разным. В первую очередь он полезен:

      setGridLinesVisible(true);

чтобы вы могли видеть, что происходит с макетом сетки (пространство между столбцами и строками, ширина и высота элементов и т. д.). О методе add из документации:

add(Node child,int columnIndex,int rowIndex,int colspan,int rowspan)

В первой строке:

       grid.add(scenetitle,0,0,2,1);

вы добавляете элемент scenetitle, и он будет расположен в столбце 0 и строке 0 и он может занимать 2 столбца< /strong> и 1 строка

На финише:

      grid.add(passName,0,2); 

вы добавляете элемент passName, и он будет расположен в столбце 0 и строке 2, вы не указали значения того, как он может охватывать.

Особая ситуация

В GridPane, если, например, у вас есть элемент в столбце 0 и строке 0 с промежутком строки 4, а во второй строке элемент без диапазон по умолчанию, учитывая, что он будет охватывать максимум диапазонов (в этом примере 4).

person GOXR3PLUS    schedule 27.06.2016
comment
Ага, понятно. Итак, в основном, colspan похож на ширину элемента сетки, а rowspan на высоту? - person Alex Jones; 27.06.2016
comment
@AlexanderJ93 Если вы установите диапазон столбцов равным 2, а GridPane имеет 2 столбца, то элемент будет больше, охватывая два столбца. Упомяните пример, который я привел об особой ситуации. Также попробуйте поиграть с GridPane, включите (setGridLinesVisible (true )) это действительно полезно, и вы поймете в глубину. - person GOXR3PLUS; 27.06.2016