我有一个散点图,里面有一些点。当我按下一个按钮时,我想更新点的位置。我有以下代码:
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
}
}
}
}
}当我按下按钮时,什么也没有发生。我做错了什么?
发布于 2019-02-22 14:31:07
当您在循环遍历points列表时执行data(it.x, it.y)时,实际上是在向图表中添加数据。在此之后更改您迭代过的列表不会对您先前添加的数据点产生任何影响。
每个Series都有一个名为data的ObservableList<XYChart.Data<Number, Number>>,其中存储了图表系列的实际数据。如果希望在这些数据点更改时自动更新图表,则可以绑定到序列的dataProperty,或者也可以直接操作data列表以获得相同的效果,而无需添加绑定/侦听器。
https://stackoverflow.com/questions/54816743
复制相似问题