我正在Netbeans中開發一個小型桌面應用程序。我將JTree
拖放到我的JFrame
上,現在我想動態填充此JTree
的節點層次結構。對於這個我worte方法返回我DefaultMutableTreeNode
對象。現在,我如何分配此對象,而我拖JTree
拖放將DefaultMutableTreeNode分配給JTree
2
A
回答
5
下面的例子將幫助你做到這一點
package commondemo;
/**
*
* @author hemant
*/
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;
public class SimpleTree extends JFrame {
public static void main(String[] args) {
new SimpleTree();
}
public SimpleTree() {
super("Creating a Simple JTree");
Container content = getContentPane();
Object[] hierarchy =
{ "javax.swing",
"javax.swing.border",
"javax.swing.colorchooser",
"javax.swing.event",
"javax.swing.filechooser",
new Object[] { "javax.swing.plaf",
"javax.swing.plaf.basic",
"javax.swing.plaf.metal",
"javax.swing.plaf.multi" },
"javax.swing.table",
new Object[] { "javax.swing.text",
new Object[] { "javax.swing.text.html",
"javax.swing.text.html.parser" },
"javax.swing.text.rtf" },
"javax.swing.tree",
"javax.swing.undo" };
DefaultMutableTreeNode root = processHierarchy(hierarchy);
JTree tree = new JTree(root);
content.add(new JScrollPane(tree), BorderLayout.CENTER);
setSize(275, 300);
setVisible(true);
}
/** Small routine that will make node out of the first entry
* in the array, then make nodes out of subsequent entries
* and make them child nodes of the first one. The process is
* repeated recursively for entries that are arrays.
*/
private DefaultMutableTreeNode processHierarchy(Object[] hierarchy) {
DefaultMutableTreeNode node =
new DefaultMutableTreeNode(hierarchy[0]);
DefaultMutableTreeNode child;
for(int i=1; i<hierarchy.length; i++) {
Object nodeSpecifier = hierarchy[i];
if (nodeSpecifier instanceof Object[]) // Ie node with children
child = processHierarchy((Object[])nodeSpecifier);
else
child = new DefaultMutableTreeNode(nodeSpecifier); // Ie Leaf
node.add(child);
}
return(node);
}
}
3
相關問題
- 1. 將不同的圖標分配給JTree中的不同節點
- 2. 如何與DefaultMutableTreeNode的文件夾結構,JTree的
- 3. 如何修改分配給JTree的對象?
- 4. 將操作添加到DefaultMutableTreeNode
- 5. 將相同的DefaultMutableTreeNode添加到2個不同的DefaultMutableTreeNode
- 6. 將mouseMoved()事件轉發給JTree節點?
- 7. 將功能分配給CPU
- 8. 將auto_ptr分配給weak_ptr
- 9. 將NSDictionary鍵分配給NSStrings
- 10. 將值分配給列表
- 11. socket.io將userId分配給sessionId
- 12. 將NSMutableDictionary分配給NSArray
- 13. 將協議分配給NSMutableDIctionary?
- 14. 將NA分配給表名
- 15. makefile將命令分配給
- 16. 將MPMediaItemArtwork分配給UIImage
- 17. 將值分配給列表
- 18. 將ListViewItem分配給組?
- 19. 將對象分配給button.tag
- 20. 將null分配給XMLGregorianCalendar
- 21. 將值分配給結構
- 22. 將值分配給指針
- 23. 將動畫分配給UIButton
- 24. 將AVAudioRecorderDelegate分配給非UIViewController
- 25. 將類分配給Html.BeginForm
- 26. 將'float'分配給`char [3]'
- 27. 將值分配給void *
- 28. 將Smarty行分配給Smarty
- 29. 將ENUM分配給DropDownList
- 30. DefaultMutableTreeNode的DocumentListener
我已經嘗試這兩種線,但它確實在注意我案件。我也檢查它包含值的根對象如預期。 DefaultMutableTreeNode root = processHierarchy(hierarchy); JTree tree = new JTree(root); 還有其他建議嗎? – Jame
你可以請提供代碼片段嗎? –