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

javafx框架tornadofx入门26_treetableview

原创
作者头像
用户6167008
修改2020-04-26 17:44:14
1.1K0
修改2020-04-26 17:44:14
举报
文章被收录于专栏:javafx框架tornadofx

1.定义商品数据类,包含名称和价格2个字段:

代码语言:javascript
复制
data class Goods(var name: String, var price: Double = 0.0)

2.构建商品数据map,key为商品分类"水果"、"蔬菜"、"肉类",value为具体的商品列表:

代码语言:javascript
复制
val tableData = mapOf(
    "水果" to arrayOf("苹果", "梨", "香蕉").map { Goods(it, (1..10).random() * 1.0) },
    "蔬菜" to arrayOf("大豆", "花菜", "土豆").map { Goods(it, (1..10).random() * 1.0) },
    "肉类" to arrayOf("牛肉", "猪肉", "羊肉").map { Goods(it, (1..10).random() * 1.0) }
)

3.用treetableview构建UI,每个treeitem包括名称和价格两列:

代码语言:javascript
复制
treetableview<Goods> {
    column("商品名称", Goods::name){
        minWidth=200.0
    }
    column("价格", Goods::price){
        minWidth=200.0
    }
    root = TreeItem(Goods("商品"))
    populate { parent ->
        parent.isExpanded=true
        if (parent == root) tableData.keys.map {
            Goods(it).apply {
            // 将每个商品分类下的具体商品价格进行求和
                this.price = tableData[this.name]?.sumByDouble { it.price } ?: 0.0
            }
        }
        else tableData[parent.value.name]
    }
    resizeColumnsToFitContent()
    minWidth=500.0
}

4.完整代码:

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.定义商品数据类,包含名称和价格2个字段:
  • 2.构建商品数据map,key为商品分类"水果"、"蔬菜"、"肉类",value为具体的商品列表:
  • 3.用treetableview构建UI,每个treeitem包括名称和价格两列:
  • 4.完整代码:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档