⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csdn技术中心 jtree实现的系统文件目录树.htm

📁 行业分类数据库管理系统
💻 HTM
📖 第 1 页 / 共 3 页
字号:
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/articlelist.aspx?c=13">其他</A>&nbsp;&nbsp;(<A 
                  href="http://www.csdn.net/Rss/RssFeed.aspx?rssid=1&amp;bigclassid=13">rss</A>)&nbsp;&nbsp;&nbsp;&nbsp;</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
      <TABLE cellSpacing=1 cellPadding=0 width="100%" bgColor=#000000 
        border=0><TBODY>
        <TR>
          <TD vAlign=top bgColor=#ededed>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD align=right 
                background="CSDN技术中心 JTree实现的系统文件目录树.files/top.gif" 
                  height=27><FONT 
              class=fonttitle>积极原创作者&nbsp;</FONT></TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=1 cellPadding=2 width="100%" border=0>
              <TBODY>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/kekeblog">kekeblog</A>&nbsp;<FONT 
                  color=#ff0000>(1)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/wti">wti</A>&nbsp;<FONT 
                  color=#ff0000>(4)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/8988">8988</A>&nbsp;<FONT 
                  color=#ff0000>(1)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/Lightest">Lightest</A>&nbsp;<FONT 
                  color=#ff0000>(4)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/inelm">inelm</A>&nbsp;<FONT 
                  color=#ff0000>(7)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/lijiecong">lijiecong</A>&nbsp;<FONT 
                  color=#ff0000>(1)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/yqj2065">yqj2065</A>&nbsp;<FONT 
                  color=#ff0000>(7)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/apexchu">apexchu</A>&nbsp;<FONT 
                  color=#ff0000>(10)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/TechnoFantasy">TechnoFantasy</A>&nbsp;<FONT 
                  color=#ff0000>(42)</FONT></TD></TR>
              <TR>
                <TD align=right><A 
                  href="http://dev.csdn.net/user/Passants">Passants</A>&nbsp;<FONT 
                  color=#ff0000>(5)</FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
    <TD vAlign=top width=786>
      <TABLE cellPadding=4 width="100%" border=0>
        <TBODY>
        <TR>
          <TD width=10 height=19></TD>
          <TD height=19>
            <TABLE cellSpacing=3 cellPadding=3 width="100%" border=0>
              <TBODY>
              <TR>
                <TD><A href="http://www.csdn.net/">CSDN</A> - <A 
                  href="http://dev.csdn.net/">文档中心</A> - <FONT color=#003399><A 
                  id=ArticleTitle1_ArticleTitle1_hlClass 
                  href="http://dev.csdn.net/articlelist.aspx?c=6">Java</A></FONT> 
                </TD>
                <TD align=right>阅读:<SPAN 
                  id=ArticleTitle1_ArticleTitle1_lblReadCount>2466</SPAN> 
                  &nbsp;&nbsp;评论: <SPAN 
                  id=ArticleTitle1_ArticleTitle1_lblCommentCount>0</SPAN> 
                  &nbsp;&nbsp; <A 
                  href="http://dev.csdn.net/article/33/33541.shtm#Comment">参与评论</A> 
                </TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=3 cellPadding=3 width="100%" bgColor=#eeeeee 
            border=0>
              <TBODY>
              <TR>
                <TD noWrap width=60 height=0></TD>
                <TD></TD></TR>
              <TR>
                <TD noWrap align=middle bgColor=#003399 height=16><FONT 
                  color=#ffffff>标题</FONT></TD>
                <TD><B>&nbsp; <SPAN 
                  id=ArticleTitle1_ArticleTitle1_lblTitle>JTree实现的系统文件目录树</SPAN></B>&nbsp;&nbsp;&nbsp;&nbsp; 
                  选择自 <A id=ArticleTitle1_ArticleTitle1_AuthorLink 
                  href="http://dev.csdn.net/user/jackkui">jackkui</A> 的 Blog 
              </TD></TR>
              <TR>
                <TD align=middle bgColor=#003399 height=16><FONT 
                  color=#ffffff>关键字</FONT></TD>
                <TD width=500>&nbsp; <SPAN 
                  id=ArticleTitle1_ArticleTitle1_lblKeywords>JTree实现的系统文件目录树</SPAN></TD></TR>
              <TR>
                <TD align=middle bgColor=#003399 height=16><FONT 
                  color=#ffffff>出处</FONT></TD>
                <TD>&nbsp; <SPAN 
                  id=ArticleTitle1_ArticleTitle1_lblSource></SPAN></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD width=10></TD>
          <TD><SPAN id=ArticleContent1_ArticleContent1_lblContent>
            <P>看到很多人问关于用JTree实现资源管理器的方法,在这里我提供一个例子共大家参考,这个例子虽然也是转自其他书,但是JTree的用法,我掌握的差不多了,如果哪位朋友,对此例子有问题,我愿意与他交流。我的email是:<A 
            href="mailto:jack_kui@126.com">jack_kui@126.com</A>这个例子涵盖了JTree的大部分属性,希望对大家能够有所帮助。需要一些图标文件,请大家自己复制好相同名字的gif图片放到目录下。</P>
            <P>下面是源代码:</P>
            <P>import java.awt.*;<BR>import java.awt.event.*;<BR>import 
            java.io.*;<BR>import java.util.*;</P>
            <P>import javax.swing.*;<BR>import javax.swing.tree.*;<BR>import 
            javax.swing.event.*;</P>
            <P>public class FileTree1 <BR>&nbsp;extends JFrame 
            <BR>{<BR>&nbsp;public static final ImageIcon ICON_COMPUTER = 
            <BR>&nbsp;&nbsp;new ImageIcon("computer.gif");<BR>&nbsp;public 
            static final ImageIcon ICON_DISK = <BR>&nbsp;&nbsp;new 
            ImageIcon("disk.gif");<BR>&nbsp;public static final ImageIcon 
            ICON_FOLDER = <BR>&nbsp;&nbsp;new 
            ImageIcon("folder.gif");<BR>&nbsp;public static final ImageIcon 
            ICON_EXPANDEDFOLDER = <BR>&nbsp;&nbsp;new 
            ImageIcon("expandedfolder.gif");</P>
            <P>&nbsp;protected JTree&nbsp; m_tree;<BR>&nbsp;protected 
            DefaultTreeModel m_model;<BR>&nbsp;protected JTextField 
            m_display;</P>
            <P>&nbsp;public 
            FileTree1()<BR>&nbsp;{<BR>&nbsp;&nbsp;super("Directories 
            Tree");<BR>&nbsp;&nbsp;setSize(400, 300);</P>
            <P>&nbsp;&nbsp;DefaultMutableTreeNode top = new 
            DefaultMutableTreeNode(<BR>&nbsp;&nbsp;&nbsp;new 
            IconData(ICON_COMPUTER, null, "Computer"));</P>
            <P>&nbsp;&nbsp;DefaultMutableTreeNode node;<BR>&nbsp;&nbsp;File[] 
            roots = File.listRoots();<BR>&nbsp;&nbsp;for (int k=0; 
            k&lt;roots.length; k++)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;node = 
            new DefaultMutableTreeNode(new IconData(ICON_DISK, 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;null, new 
            FileNode(roots[k])));<BR>&nbsp;&nbsp;&nbsp;top.add(node);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            node.add( new DefaultMutableTreeNode(new 
            Boolean(true)));<BR>&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;m_model = new 
            DefaultTreeModel(top);<BR>&nbsp;&nbsp;m_tree = new 
            JTree(m_model);</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            m_tree.putClientProperty("JTree.lineStyle", "Angled");</P>
            <P>&nbsp;&nbsp;TreeCellRenderer renderer = new 
            <BR>&nbsp;&nbsp;&nbsp;IconCellRenderer();<BR>&nbsp;&nbsp;m_tree.setCellRenderer(renderer);</P>
            <P>&nbsp;&nbsp;m_tree.addTreeExpansionListener(new 
            <BR>&nbsp;&nbsp;&nbsp;DirExpansionListener());</P>
            <P>&nbsp;&nbsp;m_tree.addTreeSelectionListener(new 
            <BR>&nbsp;&nbsp;&nbsp;DirSelectionListener());</P>
            <P>&nbsp;&nbsp;m_tree.getSelectionModel().setSelectionMode(<BR>&nbsp;&nbsp;&nbsp;TreeSelectionModel.SINGLE_TREE_SELECTION); 
            <BR>&nbsp;&nbsp;m_tree.setShowsRootHandles(true); 
            <BR>&nbsp;&nbsp;m_tree.setEditable(false);</P>
            <P>&nbsp;&nbsp;JScrollPane s = new 
            JScrollPane();<BR>&nbsp;&nbsp;s.getViewport().add(m_tree);<BR>&nbsp;&nbsp;getContentPane().add(s, 
            BorderLayout.CENTER);</P>
            <P>&nbsp;&nbsp;m_display = new 
            JTextField();<BR>&nbsp;&nbsp;m_display.setEditable(false);<BR>&nbsp;&nbsp;getContentPane().add(m_display, 
            BorderLayout.NORTH);</P>
            <P>&nbsp;&nbsp;WindowListener wndCloser = new 
            WindowAdapter()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;public void 
            windowClosing(WindowEvent e) 
            <BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;System.exit(0);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;};<BR>&nbsp;&nbsp;addWindowListener(wndCloser);<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;setVisible(true);<BR>&nbsp;}</P>
            <P>&nbsp;DefaultMutableTreeNode getTreeNode(TreePath 
            path)<BR>&nbsp;{<BR>&nbsp;&nbsp;return 
            (DefaultMutableTreeNode)(path.getLastPathComponent());<BR>&nbsp;}</P>
            <P>&nbsp;FileNode getFileNode(DefaultMutableTreeNode 
            node)<BR>&nbsp;{<BR>&nbsp;&nbsp;if (node == 
            null)<BR>&nbsp;&nbsp;&nbsp;return null;<BR>&nbsp;&nbsp;Object obj = 
            node.getUserObject();<BR>&nbsp;&nbsp;if (obj instanceof 
            IconData)<BR>&nbsp;&nbsp;&nbsp;obj = 
            ((IconData)obj).getObject();<BR>&nbsp;&nbsp;if (obj instanceof 
            FileNode)<BR>&nbsp;&nbsp;&nbsp;return 
            (FileNode)obj;<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;return 
            null;<BR>&nbsp;}</P>
            <P>&nbsp;&nbsp;&nbsp; // Make sure expansion is threaded and 
            updating the tree model<BR>&nbsp;&nbsp;&nbsp; // only occurs within 
            the event dispatching thread.<BR>&nbsp;&nbsp;&nbsp; class 
            DirExpansionListener implements 
            TreeExpansionListener<BR>&nbsp;&nbsp;&nbsp; 
            {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void 
            treeExpanded(TreeExpansionEvent 
            event)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            final DefaultMutableTreeNode node = 
            getTreeNode(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            event.getPath());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            final FileNode fnode = getFileNode(node);</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            Thread runner = new Thread() 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            public void run() 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            if (fnode != null &amp;&amp; fnode.expand(node)) 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            Runnable runnable = new Runnable() 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            public void run() 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            m_model.reload(node);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            };<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            SwingUtilities.invokeLater(runnable);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            };<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            runner.start();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void 
            treeCollapsed(TreeExpansionEvent event) {}<BR>&nbsp;&nbsp;&nbsp; 
            }</P>
            <P><BR>&nbsp;class DirSelectionListener <BR>&nbsp;&nbsp;implements 
            TreeSelectionListener <BR>&nbsp;{<BR>&nbsp;&nbsp;public void 
            valueChanged(TreeSelectionEvent 
            event)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;DefaultMutableTreeNode 
            node = 
            getTreeNode(<BR>&nbsp;&nbsp;&nbsp;&nbsp;event.getPath());<BR>&nbsp;&nbsp;&nbsp;FileNode 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -