Ярлыки JavaFX не будут отображаться - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь потренироваться с BorderPanes, что до сих пор было кошмаром. Я пытался заставить свой лейбл просто показываться в окне безрезультатно. Есть идеи?

Label arrayLabel = new Label("NUMBERS");
BorderPane.setAlignment(arrayLabel, Pos.TOP_CENTER);

TextField search = new TextField();
Button btn = new Button("search");
HBox searchbox = new HBox(2);
searchbox.getChildren().addAll(search, btn);
searchbox.setAlignment(Pos.CENTER);

BorderPane root = new BorderPane(arrayLabel);
root.setPrefSize(600, 600);
root.setCenter(searchbox);

1 Ответ

0 голосов
/ 09 мая 2018

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

Итак

BorderPane root = new BorderPane(arrayLabel);

эквивалентно

BorderPane root = new BorderPane();
root.setCenter(arrayLabel);

Когда вы впоследствии (немедленно) звоните

root.setCenter(searchbox);

центральный узел заменен на searchbox, поэтому arraylabel больше не является частью BorderPane.

Не совсем понятно, что вы намереваетесь здесь: вы по сути пытаетесь поместить два разных компонента пользовательского интерфейса (arrayLabel и searchbox) в одну и ту же область одного и того же BorderPane. Нет никакой информации (предоставленной ни нам, ни бедным BorderPane, которые пытаются позиционировать эти узлы) о том, как вы хотите, чтобы эти два компонента были расположены относительно друг друга. Чего вы на самом деле пытаетесь достичь с точки зрения того, как вы хотите, чтобы они были изложены?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...