मेरे पास JTree
और awt.Canvas
है। जब मैं Canvas
के भीतर objList
में एकाधिक ऑब्जेक्ट्स का चयन करता हूं, तो मैं चाहता हूं कि सभी चयनित आइटम JTree
के अंदर चुने गए हों। इसका मतलब है उदाहरण के लिए यदि मेरे पास 2 ऑब्जेक्ट्स चुने गए हैं, तो रूट के लिए उनके पथ दोनों का विस्तार किया जाना चाहिए, और प्रत्येक चयनित ऑब्जेक्ट में इसके संबंधित TreeNode
चयनित होना चाहिए। मेरे जेटी में TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION
है। ,जावा: JTree में प्रोग्रामिंग रूप से एकाधिक नोड्स का चयन और विस्तार कैसे करें?
public void selectTreeNodes() {
HashMap <String, MyEntity> entities = ...;
Iterator it = entities.keySet().iterator();
while (it.hasNext()) {
String str = it.next().toString();
MyEntity ent = entities.get(str);
if (ent.isSelected()) {
DefaultMutableTreeNode searchNode = searchNode(ent.getName());
if (searchNode != null) {
TreeNode[] nodes = ((DefaultTreeModel) tree.getModel()).getPathToRoot(searchNode);
TreePath tpath = new TreePath(nodes);
tree.scrollPathToVisible(tpath);
tree.setSelectionPath(tpath);
}
}
}
}
public DefaultMutableTreeNode searchNode(String nodeStr)
{
DefaultMutableTreeNode node = null;
Enumeration enumeration= root.breadthFirstEnumeration();
while(enumeration.hasMoreElements()) {
node = (DefaultMutableTreeNode)enumeration.nextElement();
if(nodeStr.equals(node.getUserObject().toString())) {
return node;
}
}
//tree node with string node found return null
return null;
}
मेरे वर्तमान स्थिति में अगर मैं एक वस्तु का चयन करें, यह JTree
में चयन किया जाएगा और इसके TreePath
दिखाया जाएगा:
यहाँ विस्तार funcion मैं का उपयोग का एक नमूना है। लेकिन अगर entities
में 1 से अधिक ऑब्जेक्ट चुने गए हैं, तो यह कुछ भी प्रदर्शित नहीं करेगा, मेरा JTree
अपरिवर्तित रहेगा।
* "मेरे पास 'JTree' और' awt.Canvas' 'का उपयोग कर सकते हैं। * * एडब्ल्यूटी घटकों के साथ स्विंग मिश्रण न करें। 'कैनवास' एक 'जेपीनेल' या 'जेलाबेल' में प्रदर्शित एक छवि होना चाहिए। –
मुझे पता है कि मुझे आमतौर पर ऐसा नहीं करना चाहिए (मुझे कैनवास के पीछे मुख्य मेन्यू के साथ कुछ समस्याएं हैं), लेकिन इस मामले में उनके बीच एकमात्र कनेक्शन पेड़ में प्रदर्शित कैनवास से इकाइयों की सरणी है। और जीयूआई में उनके बीच कुछ जगह है, इसलिए कोई नुकसान नहीं हुआ/ –