第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

JTree 在更改節(jié)點(diǎn)名稱時(shí)更改 lineStyle

JTree 在更改節(jié)點(diǎn)名稱時(shí)更改 lineStyle

撒科打諢 2023-04-19 16:29:53
更新 JTree 的節(jié)點(diǎn)會(huì)更改 lineStyle(下圖),我不知道為什么會(huì)發(fā)生這種情況以及如何防止它發(fā)生,因?yàn)槲业拇a不會(huì)在發(fā)生這些更改時(shí)更新 CellRenderer 的任何屬性。我在 Java 中有一個(gè)客戶端-服務(wù)器應(yīng)用程序,我在其中向服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求,并根據(jù)使用服務(wù)器的客戶端請(qǐng)求從數(shù)據(jù)庫(kù)中請(qǐng)求一些數(shù)據(jù),然后將結(jié)果發(fā)送回客戶端。然后將結(jié)果顯示在 JTree 中,該 JTree 已經(jīng)可以正常工作。因此,JTree 具有一些靜態(tài)節(jié)點(diǎn)(如標(biāo)題)和一些動(dòng)態(tài)節(jié)點(diǎn),其中靜態(tài)節(jié)點(diǎn)僅使用值進(jìn)行更新(這意味著始終顯示整體輪廓)并且動(dòng)態(tài)節(jié)點(diǎn)可能會(huì)作為一個(gè)請(qǐng)求的結(jié)果被附加和刪除為了下一個(gè)的結(jié)果。目前,當(dāng)我意識(shí)到這個(gè)問(wèn)題時(shí),我只實(shí)現(xiàn)了靜態(tài)節(jié)點(diǎn):當(dāng)我更改我的節(jié)點(diǎn)顯示的值時(shí),它也會(huì)將 lineStyle 屬性更改為有些奇怪,甚至無(wú)法選擇。這是 JTree 在更新節(jié)點(diǎn)之前和之后的外觀圖片:這就是我更新節(jié)點(diǎn)時(shí)發(fā)生的情況:正如您所看到的那樣,從“檢驗(yàn)批號(hào)”節(jié)點(diǎn)開(kāi)始的垂直線應(yīng)該一直向下消失,而其他線則保持在應(yīng)該的位置。我使用此代碼更新節(jié)點(diǎn):public void renameNode(DefaultMutableTreeNode node, String renamedNode) {    node.setUserObject(renamedNode);    model.nodeChanged(node);}這里參數(shù)“節(jié)點(diǎn)”是我重命名的節(jié)點(diǎn),字符串是我設(shè)置的新值(至少這是我對(duì)這里發(fā)生的事情的理解),并且在我的類的構(gòu)造函數(shù)中使用以下行訪問(wèn)模型:model = (DefaultTreeModel) tree.getModel();。我不知道這對(duì)于解決方案是否重要,但目前我并沒(méi)有真正定義 TreeModel,因?yàn)槲沂褂酶?jié)點(diǎn)啟動(dòng)我的 JTree,然后動(dòng)態(tài)附加所有節(jié)點(diǎn)。然而,在我看來(lái),它似乎與 TreeCellRenderer 有一定關(guān)系。對(duì)于我目前使用此配置的渲染器:renderer.setSize(tree.getParent().getMaximumSize());renderer.setLeafIcon(null);renderer.setOpenIcon(null);renderer.setClosedIcon(null);renderer.setDisabledIcon(null);tree.putClientProperty()我還嘗試根據(jù)JTree 上的 Oracle 教程使用強(qiáng)制 JTree 使用斜線(默認(rèn)情況下它總是應(yīng)該這樣做)。在這一點(diǎn)上,我完全不知道可能是什么問(wèn)題。對(duì)我來(lái)說(shuō)唯一有意義的事情可能是 TreeCellRenderer,但我在這里也可能完全錯(cuò)了。任何幫助將非常感激。
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

經(jīng)過(guò)一些故障排除后,我終于意識(shí)到,每次我填充我的 JTree 時(shí),與可以看到的相反,模型沒(méi)有重置為根節(jié)點(diǎn)的 0 個(gè)子節(jié)點(diǎn),而是將更改的節(jié)點(diǎn)作為新節(jié)點(diǎn)堆疊為根節(jié)點(diǎn)的子節(jié)點(diǎn)(所以我有 7、14、21,... 子節(jié)點(diǎn),每次填充我的 JTree 時(shí)都是 +7)。

這樣做的原因是我不知道我必須model.reload()在調(diào)用后調(diào)用((DefaultMutableTreeNode) tree.getModel().getRoot()).removeAllChildren();(我需要這樣做才能完全刪除樹(shù),以便我的數(shù)據(jù)只在 JTree 中列出一次)。

現(xiàn)在 JTree 在重新設(shè)置之前被完全清除,使用renameNode()我原來(lái)的帖子中提供的方法添加節(jié)點(diǎn)可以完美地工作。

希望這會(huì)幫助將來(lái)可能遇到類似問(wèn)題的其他人。


查看完整回答
反對(duì) 回復(fù) 2023-04-19
  • 1 回答
  • 0 關(guān)注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)