XYChart.Data getNode () является нулевым - PullRequest
1 голос
/ 31 мая 2019

Я пытаюсь получить узел XYChart.Data, но это ноль.

var a = new XYChart.Data<Number, Number>(10, 10);

if(a.getNode()==null){ System.out.println("true"); }

Почему getNode() возвращает ноль?Что я делаю не так?

1 Ответ

3 голосов
/ 31 мая 2019

Свойство XYChart.Data.node имеет начальное значение null. Если вы не установите его самостоятельно, он будет установлен, как только данные станут частью диаграммы. От документация ( упор мой):

Узел, отображаемый для этого элемента данных. Вы можете создать свой собственный узел и установить его для элемента данных, прежде чем добавить элемент в диаграмму. В противном случае диаграмма создаст для вас узел, который имеет представление по умолчанию для типа диаграммы. Этот узел будет установлен, как только данные будут добавлены на диаграмму. После этого вы можете добавить его для добавления прослушивателей мыши и т. Д. Диаграммы сделают все возможное, чтобы правильно расположить и определить размер узла, например, на линии или разбросе. На диаграмме этот узел будет расположен по центру на позиции значений данных. Для гистограммы она позиционируется и изменяется в качестве столбца для этого элемента данных.

Если вам нужно что-то сделать со значением по умолчанию Node, вы можете добавить прослушиватель в свойство (перед добавлением данных в диаграмму), чтобы получать уведомления о том, когда оно становится не null.

data.nodeProperty().addListener((observable, oldValue, newValue) -> {
    if (newValue != null) {
        // do something...
    }
});

Или получите Node после добавления данных на график.

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