tornadofx入门14_contextmenu_builderWindow_CRUD
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() } } } } } } } }
观看视频