Обновление диаграммы рассеяния TornadoFX - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть точечная диаграмма с некоторыми точками.Я хочу обновить положение точек, когда я нажимаю кнопку.У меня есть следующий код:

class Point(var x: Int, var y: Int)

class TestView : View("TestView") {

val points = listOf(Point(0,1),Point(1,1)).observable()

override val root = borderpane {
    center {
        scatterchart("test", NumberAxis(), NumberAxis()) {
            series("Group 1") {
                points.forEach{
                    data(it.x, it.y)
                }
            }
        }
    }

    bottom {
        button("Button") {
            action {
                points[0].x = 5
            }
        }
    }
}
}

Когда я нажимаю кнопку, ничего не происходит.Что я делаю не так?

1 Ответ

0 голосов
/ 22 февраля 2019

Когда вы делаете data(it.x, it.y), перебирая список points, вы фактически добавляете данные на график.Изменение списка, который вы повторяли после факта, не окажет никакого влияния на точки данных, которые вы добавили ранее.

Каждый Series имеет ObservableList<XYChart.Data<Number, Number>>, называемый data, где фактические данные для диаграммысерия сохраняется.Вы можете выполнить привязку к dataProperty серии, если хотите автоматически обновлять диаграмму при изменении этих точек данных, или же вы можете напрямую манипулировать списком data, чтобы получить тот же эффект без добавления привязки / слушателей.

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