Relativ neu zu Scala und ScalaFX, aber ich habe mit Java und JavaFX zuvor gearbeitet. Meine Frage ist, ob es eine Möglichkeit gibt, Parameter an ein benutzerdefiniertes TreeItem zu übergeben.Übergabe von Parametern an benutzerdefinierte TreeItem-Konstruktor
-Code sieht wie folgt aus:
Ich möchte, dies zu tun:
def makePictureHolder(picture: Picture): TreeItem[Picture] = {
new TemporaryHolderTreeItem(picture)
}
Mit dieser: Nachricht
class TemporaryHolderTreeItem extends TreeItem[Picture] {
private val gridPane = new GridPane
private val progressBar = new ProgressBar {
prefWidth = 250
}
private val columnConstraints = ObservableBuffer(
new ColumnConstraints(500),
new ColumnConstraints(250)
)
def this(picture: Picture) = this() {
value = picture
gridPane.addColumn(0, new Label(resourceBundle
.getString("uploadHolderText") + " " + picture.path))
gridPane.addColumn(1, progressBar)
gridPane.columnConstraints = columnConstraints
graphic = gridPane
}
}
Aber ich bekomme diese Fehlermeldung:
TemporaryHolderTreeItem.scala:24: com.nodefactory.diehard.gail.views.TemporaryHolderTreeItem does not take parameters
[error] def this(picture: Picture) = this() {
[error]
Ich habe versucht, den Parameter zu platzieren Das Bild in der Klassenargumentliste, aber das funktioniert auch nicht. So:
class TemporaryHolderTreeItem(picture: Picture) extends TreeItem[Picture](picture) {
private val gridPane = new GridPane
private val progressBar = new ProgressBar {
prefWidth = 250
}
private val columnConstraints = ObservableBuffer(
new ColumnConstraints(500),
new ColumnConstraints(250)
)
def this() = this() {
gridPane.addColumn(0, new Label(resourceBundle
.getString("uploadHolderText") + " " + picture.path))
gridPane.addColumn(1, progressBar)
gridPane.columnConstraints = columnConstraints
graphic = gridPane
}
}
Wie oben Fehlermeldung.