Scala JavaFx--无法解析重载的方法';添加';尝试添加树表列时

Scala JavaFx--无法解析重载的方法';添加';尝试添加树表列时,scala,Scala,我正在尝试使用JavaFX和Scala(而不是ScalaFX)编写一个应用程序。当我从(将TreeTableColumn添加到TreeTableView)中尝试此示例时,在最后两行中得到了“无法解析重载方法'Add'”。我想知道你能否帮我解决这个问题 class Phase1扩展了应用程序{ 导入javafx.scene.control.TreeTableColumn 导入javafx.scene.control.TreeTableView 导入javafx.scene.control.cell

我正在尝试使用JavaFX和Scala(而不是ScalaFX)编写一个应用程序。当我从(将TreeTableColumn添加到TreeTableView)中尝试此示例时,在最后两行中得到了“无法解析重载方法'Add'”。我想知道你能否帮我解决这个问题

class Phase1扩展了应用程序{
导入javafx.scene.control.TreeTableColumn
导入javafx.scene.control.TreeTableView
导入javafx.scene.control.cell.TreeItemPropertyValueFactory
覆盖def启动(主阶段:阶段):单位={
setTitle(“实验阻塞树”)
val场景=新场景(新组(),1500800)
val sceneRoot=scene.getRoot.asInstanceOf[Group]
val treeTableView=新的treeTableView[Car]
val treeTableColumn1:TreeTableColumn[Car,String]=新的TreeTableColumn[Car,String](“品牌”)
val treeTableColumn2:TreeTableColumn[Car,String]=新的TreeTableColumn[Car,String](“Model”)
treeTableColumn1.setCellValueFactory(新的TreeItemPropertyValueFactory[汽车,字符串](“品牌”))
treeTableColumn2.setCellValueFactory(新的TreeItemPropertyValueFactory[Car,String](“model”))
treeTableView.getColumns.add(treeTableColumn1)//无法在此处解析重载方法
treeTableView.getColumns.add(treeTableColumn2)//此处
}
}

提前谢谢

我在
TreeTableView
中显示数据时遇到了同样的问题
Jarek在这里发布了一个解决方案:
这也适用于我:

import scalafx.beans.property.ReadOnlyStringProperty

case class Car (
  val brand: ReadOnlyStringProperty,
  val model: ReadOnlyStringProperty
)

class CarStringFactory(val stringValue: ReadOnlyStringProperty) extends scalafx.beans.value.ObservableValue[String, String] {
  override def delegate: javafx.beans.value.ObservableValue[String] = stringValue
  override def value: String = stringValue.get
}


class YourScalaFXApp {

    // ... boilerplate code ...
    import scalafx.scene.control.{TreeTableView, TreeTableColumn}

    val treeTableView = new TreeTableView[Car]

    val treeTableColumn1: TreeTableColumn[Car, String] = new TreeTableColumn[Car, String]("Brand"){
        cellValueFactory = {p => new CarStringFactory(p.value.value.value.brand) }
    }
    val treeTableColumn2: TreeTableColumn[Car, String] = new TreeTableColumn[Car, String]("Model"){
        cellValueFactory = {p => new CarStringFactory(p.value.value.value.model) }
    }

    treeTableView.getColumns.add(treeTableColumn1)
    treeTableView.getColumns.add(treeTableColumn2)
}

  • ScalaFX文档:

这段代码编译得很好。在IntelliJ中,我可以看到标有红色下划线的
add
消息“无法解析重载方法'add'”,但这是IntelliJ的问题,而不是代码。