java - Adding child node to parent node of JTree -


मैंने स्विंग नियंत्रण का उपयोग करके एक JTree बनाया और नामित treeWorld । इसका जड़ नोड जड़ होता है और बच्चे अर्थात् स्तनधारी, पक्षी, सरीसृप, उभयचर, कीड़े। अब मैं चिराग, कोयल से पक्षियों को प्रोग्रामेटिक रूप से जोड़ना चाहता हूं।

लेकिन मैं गौरैया, पक्षी को पक्षियों में जोड़ नहीं सकता।

यह मेरा टुकड़ा कोड का टुकड़ा है:

<पूर्व> DefaultTreeModel मॉडल = (DefaultTreeModel) treeWorld.getModel (); DefaultMutableTreeNode रूट = (DefaultMutableTreeNode) model.getRoot (); DefaultMutableTreeNode पक्षी = नया DefaultMutableTreeNode ("पक्षी"); DefaultMutableTreeNode sparrow = नया DefaultMutableTreeNode ("sparrow"); DefaultMutableTreeNode कोयल = नया DefaultMutableTreeNode ("कोयल"); bird.add (गौरैया); bird.add (कोयल); this.pack (); this.setVisible (सही);

समस्या यह है कि आप कभी भी bird नोड को अपने JTree , root.add (bird); का उपयोग करें।

यदि आपका रूट नोड पहले से ही पक्षी नोड रखता है, तो आपको इसे root में खोजना होगा और कोई नया नहीं बनाना होगा।

इसके अलावा मॉडल का उपयोग करें .NodesWereInserted (NODE, नए int [] NODE.getChildCount () - 1}); यदि आप दृश्यमान पेड़ को नए नोड्स जोड़ते हैं NODE - नोड जिस पर आप एक नया बच्चा जोड़ते हैं।

उदाहरण:

  आयात करें java.awt.BorderLayout; आयात करें java.awt.event.ActionEvent; आयात करें java.awt.event.ActionListener; आयात java.util.Enumeration; आयात javax.swing.JButton; आयात javax.swing.JFrame; आयात javax.swing.JTree; आयात javax.swing.tree.DefaultMutableTreeNode; आयात javax.swing.tree.DefaultTreeModel; पब्लिक क्लास टेस्टफ्रेम JFrame (निजी जेटीरी टी; सार्वजनिक टेस्टफ्रेम () {init (); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); पैक (); setLocationRelativeTo (शून्य); setVisible (सही); } निजी शून्य init () {DefaultMutableTreeNode रूट = नया DefaultMutableTreeNode ("root"); DefaultMutableTreeNode पक्षी = नया DefaultMutableTreeNode ("पक्षी"); root.add (पक्षी); DefaultTreeModel मॉडल = नया DefaultTreeModel (रूट); जोड़ (टी = नया जेटी्री (मॉडल)); जेबटन बीटीएन = नया जेबटन ("एड"); btn.addActionListener (getAddListener ()); जोड़ने (btn, BorderLayout.SOUTH); } प्राइवेट एक्शनलिस्टर मिल एडलिस्ट () {नई एक्शन लिस्टनर () लौटें) {@ ओवरराइड पब्लिक वॉयड ऐक्शन प्रफोर्मेट (एक्शन इवेंट ई) {डिफॉल्ट टेरी मॉडेल मॉडल = (डिफॉल्ट ट्री मॉोडेल) टी.गेटमॉडेल (); DefaultMutableTreeNode रूट = (DefaultMutableTreeNode) model.getRoot (); गणन के बच्चों = मूल। बच्चे (); जबकि (बच्चों एच। एस। एलेमेंट्स ()) {DefaultMutableTreeNode नोड = (DefaultMutableTreeNode) children.nextElement (); अगर (नोड.टस्ट्रिंग ()। बराबर ("पक्षी")) {DefaultMutableTreeNode sparrow = नया DefaultMutableTreeNode ("sparrow"); DefaultMutableTreeNode कोयल = नया DefaultMutableTreeNode ("कोयल"); node.add (गौरैया); node.add (कोयल); Model.nodesWereInserted (नोड, नया इंट [] {node.getChildCount () - 1, node.getChildCount () - 2}); टूटना; }}}}; } सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग एजीआर []) {नया टेस्टफ्रेम (); }}  

Comments

Popular posts from this blog

mysql - How to enter php data into a html multiple select box -

java - Can't add JTree to JPanel of a JInternalFrame -

c++ - Cassandra datastax cpp driver - avoiding unnecessary copies -