2017-07-20 10 views
0

ScalaとScalaFXの新機能ですが、以前はJavaとJavaFXを使っていました。私の質問は、カスタムTreeItemにパラメータを渡す方法がある場合ですか?カスタムTreeItemコンストラクタへのパラメータの受け渡し

コードは次のようになります。これで

def makePictureHolder(picture: Picture): TreeItem[Picture] = { 
    new TemporaryHolderTreeItem(picture) 
    } 

私はこれを行うにはしたいと思い

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 
    } 
} 

しかし、私は、このエラーメッセージが出ます:

TemporaryHolderTreeItem.scala:24: com.nodefactory.diehard.gail.views.TemporaryHolderTreeItem does not take parameters 
[error] def this(picture: Picture) = this() { 
[error]    

私はパラメタを配置しようとしましたクラスの引数リストにある画像は消えてしまいますが、それもうまくいきません。

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 
    } 
} 

上記と同じエラーメッセージ:このよう 。

答えて

0

ソリューション: 私はScalaではデフォルトコンストラクタは、私はこの(DEF必要はありませんでした関数の外にあることを忘れて)=これは(){...}

は代わりに、これは働いていた:

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) 
) 

    gridPane.addColumn(0, new Label(resourceBundle 
    .getString("uploadHolderText") + " " + picture.path)) 

    gridPane.addColumn(1, progressBar) 

    gridPane.columnConstraints = columnConstraints 
    graphic = gridPane 

} 
関連する問題