2016-01-18 3 views

ответ

1

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 для безопасного ввода по типу. Тем не менее, как поисковые, так и явные ссылочные подходы имеют обоснованные варианты использования, поэтому на самом деле это просто вопрос правильного подхода в нужное время.

+0

Спасибо большое. Оно работает –

Смежные вопросы