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()
}
}
}
}
}
}
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。