0

我正在尝试使用 scalaFX 制作复选框列表。通过一些研究,我发现 CheckBoxListCell 组件可以解决这个问题。但是我没有找到 scalaFX 的一个很好的例子(只有 javaFX)。请问有什么帮助吗?谢谢

4

1 回答 1

0

这是一个完整的 ScalaFX 示例:

package scalafx.controls

import scala.language.implicitConversions
import scalafx.Includes._
import scalafx.application.JFXApp
import scalafx.application.JFXApp.PrimaryStage
import scalafx.beans.property.BooleanProperty
import scalafx.collections.ObservableBuffer
import scalafx.scene.Scene
import scalafx.scene.control.cell.CheckBoxListCell
import scalafx.scene.control.{Button, ListView}
import scalafx.scene.layout.VBox

object CheckBoxListCellDemo extends JFXApp {

  class Item(initialSelection: Boolean, val name: String) {
    val selected = BooleanProperty(initialSelection)
    override def toString = name
  }

  val data = ObservableBuffer[Item](
    (1 to 10).map { i => new Item(i % 2 == 0, s"Item $i") }
  )

  stage = new PrimaryStage {
    scene = new Scene {
      title = "CheckBoxListCell Demo"
      root = new VBox {
        children = Seq(
          new ListView[Item] {
            prefHeight=250
            items = data
            cellFactory = CheckBoxListCell.forListView(_.selected)
          },
          new Button("Print State ") {
            onAction = handle {
              println("-------------")
              println(data.map(d => d.name + ": " + d.selected()).mkString("\n"))
            }
          }
        )
      }
    }
  }
}
于 2015-05-05T23:07:40.717 回答