package abc; import java.io.*; public class Data { private String name; private String fullName; public Data (File f) { name = f.getName(); fullName = f.getAbsolutePath(); } public String toString () { return name; } private String getFullName () { return fullName; } } import javax.swing.*; import javax.swing.tree.*; import java.io.*; private void display (DefaultMutableTreeNode branch, File dir) { if (dir.isDirectory()) { File [] files = dir.listFiles(); if (files != null) for (File file : files) { DefaultMutableTreeNode node = new DefaultMutableTreeNode (new Data (file)); branch.add (node); if (file.isDirectory()) display (node, file); } } } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { File dir = new File (".."); DefaultMutableTreeNode branch = new DefaultMutableTreeNode (new Data (dir)); display (branch, dir); DefaultTreeModel model = new DefaultTreeModel (branch); jTree1.setModel (model); } private void jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt) { TreePath path = evt.getPath(); Object comp = path.getLastPathComponent(); if (comp instanceof DefaultMutableTreeNode) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) comp; Object obj = node.getUserObject(); if (obj instanceof Data) { Data data = (Data) obj; System.out.println ("click " + data.getFullName ()); } } } private void jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt) { // TODO add your handling code here: TreePath path = evt.getPath(); Object comp = path.getLastPathComponent(); if (comp instanceof DefaultMutableTreeNode) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) comp; Object obj = node.getUserObject(); if (obj instanceof Data) { Data data = (Data) obj; String fileName = data.getFullName (); try { FileReader r = new FileReader (fileName); BufferedReader b = new BufferedReader (r); jTextArea1.setText(""); int cnt = 1; while (b.ready() && cnt <= 100) { jTextArea1.append (b.readLine() + "\n"); cnt ++; } } catch (Exception ex) { } } } }