tornadofx入门14_contextmenu_builderWindow_CRUD

  • 2019 年 12 月 24 日
  • 筆記
import javafx.scene.control.TableView  import tornadofx.*    class MainView14 : View("tornadofx入门14_contextmenu_builderWindow") {      val data = (1..10).map {          "${it}_name${it}"      }.asObservable()      val persions = (1..10).map {          Person14(it, "name${it}")      }.asObservable()      lateinit var tbl: TableView<Person14>      val pid = intProperty()      val name = stringProperty()      override val root = gridpane {          row {              tableview(persions) {                  tbl = this                  column("Id", String::class) {                      value {                          it.value.id                      }                  }                  column("Name", String::class) {                      value {                          it.value.name                      }                  }                  contextmenu {                      item("add").action {                          builderWindow("add one persion") {                              vbox(10) {                                  textfield(pid){                                      pid.value=null                                  }                                  textfield(name){                                      name.value=null                                  }                                  button("add one persion") {                                      action {                                          persions.add(0, Person14(pid.value, name.value))                                      }                                  }                              }                          }                      }                      item("delete").action {                          tbl.selectedItem?.let {                              persions.remove(it)                          }                      }                      item("update").action {                          tbl.selectedItem?.let {                              builderWindow("update one persion") {                                  vbox(10) {                                      setPrefSize(400.0,400.0)                                      textfield(pid){                                          pid.value=it.id                                      }                                      textfield (name){                                          name.value=it.name                                      }                                      button("update one persion") {                                          action {                                              persions[tbl.selectionModel.selectedIndex].id = pid.value                                              persions[tbl.selectionModel.selectedIndex].name = name.value                                              tbl.refresh()                                          }                                      }                                  }                              }                          }                      }                  }              }

观看视频