Как я могу использовать .lookUp () до показа этапа (или использовать его после показа этапа) - PullRequest
0 голосов
/ 29 июня 2018

Я хочу использовать .lookup (), чтобы я мог создать событие, когда щелкается содержимое TextArea, но я получаю значение NULL, когда использую textArea.lookup (". Content"). После поиска, почему это так, я обнаружил, что он возвращает null, если вызывается перед stage.show (). Моя следующая реакция состояла в том, чтобы как-то проверить событие, которое разыгрывается после показа сцены, но это событие доступно только в том случае, если у вас есть доступ к самой сцене, чего у меня нет в этом случае. Что еще я могу сделать?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Генерация прохода макета на узле:

node.applyCss();
node.layout();

как определено в ответе на:

После этого ваши функции поиска на узле должны работать как положено.

0 голосов
/ 29 июня 2018

Не регистрируйте обработчик на узле содержимого. Пусть TextArea самостоятельно занимается созданием узла контента, зарегистрирует обработчик событий непосредственно в TextArea и использует pickResult события, чтобы определить, произошел ли щелчок внутри узла с классом стиля * 1004. *.

textArea.setOnMouseClicked(evt -> {
    Node n = evt.getPickResult().getIntersectedNode();
    while (n != textArea) {
        if (n.getStyleClass().contains("content")) {
            // do something with content node
            System.out.println("content: " + n);
            break;
        }
        n = n.getParent();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...