前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tornadofx入门14_contextmenu_builderWindow_CRUD

tornadofx入门14_contextmenu_builderWindow_CRUD

原创
作者头像
用户6167008
修改2019-12-24 18:22:30
1.1K1
修改2019-12-24 18:22:30
举报
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档