首页
学习
活动
专区
圈层
工具
发布

javafx框架tornadofx实战-舒尔特8-增加统计功能

重要的事情说3遍: 动手敲代码!!!动手敲代码!!!动手敲代码!!!

新建StatisticView.kt文件,并添加到主视图的right drawer中:

代码语言:javascript
复制
import javafx.scene.chart.*
import tornadofx.*
class StatisticView : View("统计") {
    private val c by inject<MainController>()//注入控制器
    private var bc by singleAssign<BarChart<String, Number>>()//定义柱状图表变量
    private var _series by singleAssign<XYChart.Series<String, Number>>()//图表数据系列变量
    private val nums = intProperty(9)//数据量

代码语言:javascript
复制
/**
     * 根据历史记录构建图表数据
     */
    private fun chartData() {
        _series.data.clear()
        c.historyList.filter { it.split(c.splitStr)[1] == c.category.value && it.split(c.splitStr).last() == nums.value.toString() }
                .forEach {
                    val d = XYChart.Data<String, Number>(it.split(c.splitStr)[0], it.split(c.splitStr)[2].toInt())
                    _series.data.add(d)
                }
    }
}

在MainController增加相关变量:

代码语言:javascript
复制
val category= stringProperty()
val categoryList= observableListOf<String>()
val splitStr=" -- "

判断游戏结束的代码变成:

下一篇
举报
领券