1

我正在尝试构建一个显示线性图表的 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 个错误:

第一个想法突出显示“系列”(在 中lineChart.data.set(series))并说“类型不匹配,预期:ObservableList[XYChart.Series[X, Y]],实际 XYChart.Series[Number, Number]”

第二 - 当我尝试构建时,我得到“未绑定的占位符参数 private val lineChart:XYChart = _”错误。

有什么建议么?^

4

1 回答 1

0

我自己找到了答案,让我分享给任何可能遇到同样问题的人。

  • 使用var,而不是val

  • 使用 LineChart 类型,而不是 XYChart

  • 指定图表轴类型

  • 使用javafx.scene.chart.LineChart, not 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 代码中的控制器全名(场景设计器未添加)

它按预期工作。

于 2014-04-29T19:39:26.430 回答