findViewById (JavaFX 8)
- public static Set<Node> findByCssClass(Parent root, String cssClass) {
- Set<Node> result = new HashSet<>(root.lookupAll(cssClass));
- root.getChildrenUnmodifiable().stream()
- .filter(n -> n instanceof Parent)
- .map(Parent.class::cast) // map(n -> (Parent) n)
- .forEach(n -> result.addAll(findByCssClass(n, cssClass)));
- return result;
- }
- @SuppressWarnings("unchecked")
- public static <T extends Node> T findById(Parent parent, String cssId) {
- return (T) Optional.ofNullable(parent.lookup(cssId))
- .orElse(parent.getChildrenUnmodifiable().stream()
- .filter(n -> n instanceof Parent)
- .map(n -> (T) findById((Parent) n, cssId))
- .filter(n -> n != null)
- .findFirst()
- .orElse(null));
- }
Использование:
Замечание
В контроллере в методе initialize этот код нужно вызывать так
- SplitPane editorPanel = Context.findById(mainPane, "#editorPanel");
Замечание
В контроллере в методе initialize этот код нужно вызывать так
- Platform.runLater(() -> {
- SplitPane editorPanel = Context.findById(mainPane, "#editorPanel");
- };