Lookups в сочетании с applyCSS
Lookups основаны на CSS. Таким образом, CSS необходимо применять к сценам, чтобы вы могли искать объекты в сцене. Для получения дополнительной информации см. Документацию applyCSS
. Чтобы получить точные результаты поиска, вы также можете вызвать layout, так как операция макета может влиять на атрибуты графа сцены.
Таким образом, вы можете сделать это:
Button btn = new Button("ohot");
btn.setId("testId");
itemSection.getChildren().add(btn);
itemSection.applyCss();
itemSection.layout();
Node nds = itemSection.lookup("#testId");
Альтернативный поиск после показа стадии
Обратите внимание, что некоторые операции в JavaFX, например, первоначально showing стадии или в ожидании pulse произойти, будет неявно выполнять приложение CSS, но большинство операций не будет.
Таким образом, вы также можете сделать это:
Button btn = new Button("ohot");
btn.setId("testId");
itemSection.getChildren().add(btn);
stage.setScene(new Scene(itemSection);
stage.show();
Node nds = itemSection.lookup("#testId");
На CSS основе поисков В. С. явных ссылок
Сохранение и использование прямых ссылок в коде часто предпочитают используя поиск. В отличие от поиска, использование явной ссылки безопасно типа и не зависит от приложения CSS. Генерирование явных ссылок также может быть облегчено с помощью JavaFX и FXML с аннотацией @FXML для безопасного ввода по типу. Тем не менее, как поисковые, так и явные ссылочные подходы имеют обоснованные варианты использования, поэтому на самом деле это просто вопрос правильного подхода в нужное время.
Спасибо большое. Оно работает –