ocean #5083(2008/01/01 08:38 GMT) [ Java ] Rating0/0=0.00
「データ構造を作成する」という条件に合うか微妙ですが、DefaultMutableTreeNodeを自分で操作してるので、いいよね。(なお、ノードはソートされません)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
import java.io.*; import java.util.*; import javax.swing.*; import javax.swing.tree.*; class MeApp { public static void main(String[] args) throws Exception { final DefaultMutableTreeNode root = new DefaultMutableTreeNode("ROOT"); final BufferedReader r = new BufferedReader(new FileReader(args[0])); try { String path; while ((path = r.readLine()) != null) { DefaultMutableTreeNode node = root; for (String name : path.split("\\\\")) { node = getChild(node, name); } } } finally { r.close(); } SwingUtilities.invokeLater(new Runnable(){ public void run() { final MeFrame frame = new MeFrame(root); frame.setDefaultCloseOperation(MeFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } }); } private static DefaultMutableTreeNode getChild(DefaultMutableTreeNode parent, String name) { final Enumeration e = parent.children(); while (e.hasMoreElements()) { final DefaultMutableTreeNode child = (DefaultMutableTreeNode)e.nextElement(); if (child.getUserObject().equals(name)) { return child; } } final DefaultMutableTreeNode child = new DefaultMutableTreeNode(name); parent.add(child); return child; } } class MeFrame extends JFrame { public MeFrame(TreeNode root) { final JTree tree = new JTree(root); for (int i = 0; i < tree.getRowCount(); ++i) { // expand all tree.expandRow(i); } setContentPane(new JScrollPane(tree)); } }
Rating0/0=0.00-0+
[ reply ]
ocean
#5083()
[
Java
]
Rating0/0=0.00
「データ構造を作成する」という条件に合うか微妙ですが、DefaultMutableTreeNodeを自分で操作してるので、いいよね。(なお、ノードはソートされません)
Rating0/0=0.00-0+
[ reply ]