代碼(JavaFX 應(yīng)用程序,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() }}當(dāng)我更改對(duì)象的值時(shí)(Pck_CmdSetSkill.listen發(fā)生時(shí)),單元格的值保持在其原始狀態(tài)。我究竟做錯(cuò)了什么?我嘗試了一些可觀察的變體,但失敗了......我也嘗試過(guò),it.value.value.value.toString()但沒(méi)有發(fā)生新的事情。
添加回答
舉報(bào)
0/150
提交
取消