Relativement nouveau pour Scala et ScalaFX, mais j'ai déjà travaillé avec Java et JavaFX. Ma question est s'il y a un moyen de passer des paramètres à un TreeItem personnalisé?Passage de paramètres au constructeur TreeItem personnalisé
code ressemble à ceci:
Je voudrais faire:
def makePictureHolder(picture: Picture): TreeItem[Picture] = {
new TemporaryHolderTreeItem(picture)
}
Avec ceci:
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
}
}
Mais je reçois ce message d'erreur:
TemporaryHolderTreeItem.scala:24: com.nodefactory.diehard.gail.views.TemporaryHolderTreeItem does not take parameters
[error] def this(picture: Picture) = this() {
[error]
J'ai essayé de placer le paramètre image er dans la liste des arguments de classe, mais cela ne fonctionne pas non plus. Comme ceci:
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
}
}
même message d'erreur comme ci-dessus.