Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

JTree

Empfohlene Antworten

Veröffentlicht

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:

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

as OS-T said ;)

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>

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.