为了账号安全,请及时绑定邮箱和手机立即绑定

JavaFX TreeTableView 无法更新单元格值

JavaFX TreeTableView 无法更新单元格值

慕桂英546537 2022-07-27 20:52:26
代码(JavaFX 应用程序,kotlin):class TempController {    @FXML    private lateinit var treeTable: TreeTableView<SkillTableDAO>    @FXML    private lateinit var colValue: TreeTableColumn<SkillTableDAO, String>    private val skillTree: MutableMap<Long, TreeItem<SkillTableDAO>> = ConcurrentHashMap()    @Suppress("unused")    fun initialize() {        colValue.setCellValueFactory {            ReadOnlyStringWrapper(it.value.value.getValue())        }        val treeRoot = TreeItem<SkillTableDAO>(null).apply { isExpanded = true }        treeTable.isShowRoot = false        treeTable.root = treeRoot        Pck_CmdSetSkill.listen { packet ->            Platform.runLater {                var node = skillTree[packet.id]                if (node != null) {                    node.value.onPacket(packet)                    // Packets goning unordered, so try to find parent                    if ((node.parent == treeRoot || node.parent.value.id != node.value.parentId) && skillTree.containsKey(packet.parentId)) {                        node.parent.children.remove(node)                        skillTree[packet.parentId]!!.children.add(node)                    }                } else {                    node = TreeItem(SkillTableDAO(packet))                    skillTree[packet.id] = node                    (skillTree[packet.parentId] ?: treeRoot).children.add(node)                }            }        }    }    @Suppress("unused")    class SkillTableDAO(packet: Pck_CmdSetSkill.Packet) {        val id: Long = packet.id        val parentId: Long = packet.parentId        var value: Float = packet.value        fun onPacket(packet: Pck_CmdSetSkill.Packet): SkillTableDAO {            this.value = packet.value            return this        }        fun getValue() = value.toString()    }}当我更改对象的值时(Pck_CmdSetSkill.listen发生时),单元格的值保持在其原始状态。我究竟做错了什么?我尝试了一些可观察的变体,但失败了......我也尝试过,it.value.value.value.toString()但没有发生新的事情。
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

Pck_CmdSetSkill 仅被称为初始,另一个地方的错误代码 =(



查看完整回答
反对 回复 2022-07-27
  • 1 回答
  • 0 关注
  • 245 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号