Forrester Geschrieben 8. November 2001 Geschrieben 8. November 2001 Hallo Zusammen, wie kann ich in einem JTree der mir meine Festplatte anzeigt einstellen das er mir nicht in jedem node den kompletten Pfad anzeigt sondern nur wie im Explorer den namen des Ordners oder der datei. Weiß leider nicht mehr weiter. bin für jeden vorschlag dankbar. ehre :confused: Zitieren
Gast Os-T Geschrieben 9. November 2001 Geschrieben 9. November 2001 Hi, ich würde sagen, daß Du Dir eine eigenen Node-Klasse programmierst und die toString()-Methode überschreibst und eben nur den letzten Teil des kompletten Pfades ausgibst. MfG Markus Zitieren
Forrester Geschrieben 12. November 2001 Autor Geschrieben 12. November 2001 ok schon klar, aber wie soll ich das da machen? import java.awt.*; import java.awt.event.*; import java.awt.Frame; import javax.swing.*; import javax.swing.plaf.*; import javax.swing.JTree; import javax.swing.tree.*; import javax.swing.event.*; import javax.swing.JScrollPane; import java.util.*; import java.io.*; /** * Title: * Description: * Copyright: Copyright (c) 2001 * Company: * @author * @version 1.0 */ public class TreeApp extends JFrame { private File files[] = File.listRoots(); private JTree.DynamicUtilTreeNode root = new JTree.DynamicUtilTreeNode("root", files); private JTree tree = new JTree(root); private JPanel centerPanel = new JPanel(); DefaultTreeModel treeModel = (DefaultTreeModel)tree.getModel(); public TreeApp() { super("TreeDemo!"); initTree(); this.getContentPane().add(centerPanel); } public static void main(String[] args) { TreeApp jma = new TreeApp(); jma.setSize(500,450); jma.setVisible(true); try { //UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); } catch(Exception e) { e.printStackTrace(); } jma.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } private void initTree() { try { /* DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer(); renderer.setLeafIcon(new ImageIcon("middle.gif")); tree.setCellRenderer(renderer); */ tree.putClientProperty("JTree.lineStyle", "Angled"); tree.setAutoscrolls(true); tree.setRootVisible(false); tree.setShowsRootHandles(true); /* Allow each root file to have children. */ for (Enumeration kids = root.children(); kids.hasMoreElements() ; ) { JTree.DynamicUtilTreeNode node = (JTree.DynamicUtilTreeNode)kids.nextElement(); node.setAllowsChildren(true); } tree.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { String selectedPath = tree.getSelectionPath().toString(); System.out.println(selectedPath); } }); tree.addTreeExpansionListener(new MyTreeExpansionListener(){}); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); JScrollPane treeView = new JScrollPane(tree); treeView.setPreferredSize(new Dimension(400, 400)); centerPanel.add(treeView, "West"); } catch (Exception e) { e.printStackTrace(); } }//END initTree /* * A class to sift out only directories. */ class DirectoryFilter implements FileFilter { public boolean accept(File file) { return (file.isDirectory() && !file.isHidden()) ? true : false; } } /** * Der TreeExpansionListener */ class MyTreeExpansionListener implements TreeExpansionListener { public void treeCollapsed(TreeExpansionEvent event) { } public void treeExpanded(TreeExpansionEvent event) { TreePath path = event.getPath(); JTree.DynamicUtilTreeNode node = (JTree.DynamicUtilTreeNode)path.getLastPathComponent(); if (node.getChildCount() == 0) { File file = (File)node.getUserObject(); File[] subs = file.listFiles(); if ((subs != null) && (subs.length != 0)) { java.util.Arrays.sort(subs); System.out.println(subs[1].toString()); JTree.DynamicUtilTreeNode.createChildren(node,subs); for (Enumeration kids = node.children() ; kids.hasMoreElements() ; ) { JTree.DynamicUtilTreeNode subnode = (JTree.DynamicUtilTreeNode)kids.nextElement(); File subfile = (File)subnode.getUserObject(); if (subfile.isDirectory()) { subnode.setAllowsChildren(true); } else { subnode.setAllowsChildren(false); } } treeModel.reload(node); } } } } } danke schonmal. ehre <FONT COLOR="#a62a2a" SIZE="1">[ 12. November 2001 12:29: Beitrag 1 mal editiert, zuletzt von Forrester ]</font> Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.