2016-03-28 2 views
0

я взял код Tableview из простого примера ScalaFx (упрощенный из ScalaFx Custom cells):Простого ScalaFx TableView пример не компиляции

импорта scalafx.application.JFXApp импорта scalafx.beans.property.StringProperty импорта scalafx.collections. . ObservableBuffer импорт scalafx.scene.Scene импорт scalafx.scene.control {TableColumn, TableView}

object MyTableApp extends JFXApp { 

    class Person(nameStr : String) { 
    val name = new StringProperty(this, "firstName", nameStr) 
    } 

    val characters = ObservableBuffer[Person](
    new Person("Peggy Sue"), 
    new Person("Rocky Raccoon"), 
    new Person("Bungalow Bill") 
) 

    stage = new JFXApp.PrimaryStage { 
    title = "Simple TableView" 
    scene = new Scene { 
     content = new TableView[Person](characters) { 
     columns ++= List(
      new TableColumn[Person, String] { 
      text = "First Name" 
      cellValueFactory = { _.value.name } 
      prefWidth = 100 
      } 
     ) 
     } 
    } 
    } 
} 

При компиляции, я получаю запутанный ошибку:

Error:(24, 11) type mismatch; 
found : scalafx.scene.control.TableColumn[MyTableApp.Person,String] 
required: javafx.scene.control.TableColumn[MyTableApp.Person, ?] 
      new TableColumn[Person, String] { 

Что я делаю неправильно?

Мой build.sbt содержит:

scalaVersion := "2.11.8" 

libraryDependencies += "org.scalafx" %% "scalafx" % "8.0.60-R9" 

ответ

1

Я осторожно, чтобы не скопировать пример источника, и мне не хватает импорта:

import scalafx.scene.control.TableColumn._