簡體   English   中英

每個JTree節點存儲和使用多個值

[英]Storing and using multiple values per JTree node

好的,我是Java的新手,所以請多多包涵。

我正在使用Netbeans 6.8編寫一個包含JTree組件的小型桌面應用程序,我的要求是我能夠保存和加載樹結構,但是該結構允許每個樹節點包含三項信息-文本顯示為節點,唯一標識符和文件名。

當然,單擊節點時,我還需要能夠獲取所有三位信息。

我已經成功保存了,並使用getModel()XMLDecoder / encoder加載了樹模型,但這當然只保存了默認樹模型。

我遵循了一些有關創建自定義樹模型的教程,但發現它們令人困惑,而且我無法將它們告訴我的內容轉移到我自己的項目中,因為當然,它們通常一次性創建了整個示例應用程序。

假設甚至可以使用這樣的樹模型,請有人解釋如何創建這樣的模型,最重要的是,如何將模型放入應用程序中已經存在的JTree中(以及我將如何檢索該模型)。單擊節點時的信息-我目前可以找到選定的節點並檢索其文本)

如果無法做到這一點,我很樂意聽到導致相同功能的其他替代方法。

已經找到了解決方案,因此感謝大家的努力,但是正確的答案必須交給Andrew首先發布!

對於那些感興趣的人:我使用Netbeans IDE創建了一個新的Javabean對象。 一旦意識到了該對象與普通對象之間的區別,便設法將新創建的Javabean對象放入樹節點中。 只是為了使一切順利,我原來的保存方法仍然可以正常工作!

感謝大家的努力。

MVK

要顯示為節點的文本,唯一標識符和文件名。

將它們封裝在JavaBean Object並使用適當的渲染器。

默認情況下,JTree使用DefaultTreeModel,后者依次使用DefaultMutableTreeNode表示每個節點。 您可以將任何對象分配給節點,並且將通過調用toString()方法來呈現該對象。

因此,最簡單的解決方案是將所需的所有數據封裝在一個類中,並實現toString()方法以返回要顯示的內容。 另外,如果按照JavaBeans規范實現類,則可以免費獲得XML序列化。

您確實應該看一下Swing教程,特別是How to use Trees 在閱讀了如何處理樹,列表和表格后,模型,渲染器和editosr會更加清晰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM