我正在尝试构建一个显示线性图表的ScalaFX应用程序。
我已将折线图控制器成员定义为
@javafx.fxml.FXML
private val lineChart: XYChart = _
我正在尝试使用
添加数据val data = ObservableBuffer(Seq(
(1, 23),
(2, 14),
(3, 15)
) map {case (x, y) => XYChart.Data[Number, Number](x, y).delegate} )
val series = XYChart.Series[Number, Number]("My series", data)
lineChart.data.set(series)
但我在这里得到2个错误:
First Idea突出显示“系列”(在lineChart.data.set(series)
中)并说“类型不匹配,预期:ObservableList [XYChart.Series [X,Y]],实际XYChart.Series [数字,数字]”
第二 - 当我尝试构建时,我得到“未绑定的占位符参数private val lineChart:XYChart = _”错误。
有什么建议吗? ^
答案 0 :(得分:0)
我自己找到了答案,让我分享给任何可能遇到同样问题的人。
使用var
,而不是val
使用LineChart类型,而不是XYChart
指定图表轴类型
使用javafx.scene.chart.LineChart
,而不是scalafx.scene.chart.LineChart
(如果有人可以通过ScalaFX建议正确的方式,会很好)
错:
private val lineChart: XYChart = _
右:
private var lineChart: LineChart[Number, Number] = _
使用lineChart.getData.add(series)
,而不是lineChart.data.set(series)
将fx:controller
设置为FXML代码中的控制器全名(不是由Scene Designer添加)
然后按预期工作。