前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用javafx框架tornadofx制作的成语字典小工具

使用javafx框架tornadofx制作的成语字典小工具

原创
作者头像
用户6167008
修改2019-11-12 11:08:24
1K0
修改2019-11-12 11:08:24
举报
文章被收录于专栏:javafx框架tornadofx

使用borderpane布局,left部分包括一个用于输入查寻关键字的文本框、查询清空按键和26个英文字母按钮,center部分一个tableview,显示查寻结果;bottom采用label显示操作信息。

使用https://gitee.com/xwintop/xJavaFxTool 中的数据库

定义字典model:

代码语言:javascript
复制
class Idiom {
    val wordProperty = stringProperty("")
    var word by wordProperty

    val pinyinProperty = stringProperty()
    var pinyin by pinyinProperty

    val explanationProperty = stringProperty()
    var explanation by explanationProperty

    val derivationProperty = stringProperty()
    var derivation by derivationProperty


    val exampleProperty = stringProperty()
    var example by exampleProperty
}

class IdiomViewModel : ItemViewModel<Idiom>() {
    val word = bind(defaultValue = "") { item?.wordProperty }
    val pinyin = bind { item?.pinyinProperty }
    val explanation = bind { item?.explanationProperty }
    val derivation = bind { item?.derivationProperty }
    val example = bind { item?.exampleProperty }
}

UI:

代码语言:javascript
复制
class IdiomDataTool : View("成语字典") {
    val C: IdiomController by inject()
    val idiomVM: IdiomViewModel by inject()
    val index1 = stringProperty("")
    val index2 = stringProperty("")
    val index3 = stringProperty("")
    val index4 = stringProperty("")
    val selectWord = stringProperty("")
    val tfs = listOf(index1, index2, index3, index4, selectWord)

    override val root = borderpane {
        paddingAll = 10.0
        left = vbox(4) {
            prefWidth = 250.0
            vbox(4) {
                label("模糊查询")
                textfield(selectWord) { promptText = "输入查询的成语字段" }
                hbox(10) {
                    button("查询") {
                        action {
                            C.selectAction(selectWord.value)
                        }
                    }
                    button("清空") {
                        action {
                            C.clearAction(tfs)
                        }
                    }
                }
            }
            flowpane {
                hgap = 4.0
                vgap = 4.0
                "abcdefghijklmnopqrstuvwxyz".toCharArray().forEach {
                    button("$it") {
                        setPrefSize(40.0, 40.0)
                        style {
                            fontSize = 16.px
                        }
                        action {
                            selectWord.value = selectWord.value.plus(it)
                        }
                    }
                }
            }
        }
        center = tableview(C.idioms) {
            column("词目", Idiom::wordProperty).makeEditable()
            column("发音", Idiom::pinyinProperty).makeEditable()
            column("释义", Idiom::explanationProperty).makeEditable()
            column("出处", Idiom::derivationProperty).makeEditable()
            column("示例", Idiom::exampleProperty).makeEditable()
            bindSelected(idiomVM)
            onUserSelect(1) {
                C.msg.value = "查寻到${C.count.value}条记录。${idiomVM.word.value} :${idiomVM.explanation.value}"
//                tooltip(idiomVM.derivation.value)
            }
            smartResize()
        }
        bottom = hbox {
            paddingTop=5.0
            label(C.msg)
        }
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档