📄 frame1.java~41~
字号:
package test_tree;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.tree.TreeNode;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.*;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.tree.ExpandVetoException;
import javax.swing.event.TreeWillExpandListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.TreePath;
public class Frame1 extends JFrame {
BorderLayout borderLayout1 = new BorderLayout();
DefaultMutableTreeNode root=new DefaultMutableTreeNode("我的电脑");
JTree jTree1=new JTree(root) ;
private void create_treenode(DefaultMutableTreeNode node)
{
File[]temp= File.listRoots();
for(int i=0;i<temp.length;i++)
{
DefaultMutableTreeNode node1=new DefaultMutableTreeNode(temp[i].toString());
node.add(node1);
DefaultMutableTreeNode node2=new DefaultMutableTreeNode(temp[i].toString());
node1.add(node2);
}
}
public Frame1() {
try {
jbInit();
create_treenode(root);
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
getContentPane().setLayout(borderLayout1);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jTree1.addTreeWillExpandListener(new
Frame1_jTree1_treeWillExpandAdapter(this));
jTree1.addTreeSelectionListener(new Frame1_jTree1_treeSelectionAdapter(this));
this.getContentPane().add(jTree1, java.awt.BorderLayout.CENTER);
}
public static void main(String[] args) {
Frame1 frame1 = new Frame1();
frame1.setSize(600,600);
frame1.setVisible(true);
}
public void jTree1_treeWillExpand(TreeExpansionEvent event) throws
ExpandVetoException {
DefaultMutableTreeNode node=(DefaultMutableTreeNode)
event.getPath().getLastPathComponent();
if(node.toString().equals("我的电脑"))
{
return;
}
node.removeAllChildren();
TreeNode []m=node.getPath();
String dir= getpath(m);
File file=new File(dir);
File[]lis=file.listFiles();
node.removeAllChildren();
for(int i=0;i<lis.length;i++)
{
if(lis[i].isDirectory())
{
DefaultMutableTreeNode node1=new DefaultMutableTreeNode(lis[i].getName());
DefaultMutableTreeNode node2=new DefaultMutableTreeNode();
node.add(node1);
node1.add(node2);
}
}
}
private String getpath(Object[]temp)
{
String dir="";
for(int i=1;i<temp.length;i++)
{
DefaultMutableTreeNode node=(DefaultMutableTreeNode)temp[i];
dir=dir+node.toString()+"\\";
}
return dir;
}
public void jTree1_valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode node=(DefaultMutableTreeNode)e.getNewLeadSelectionPath().getLastPathComponent();
if(e.getNewLeadSelectionPath().getLastPathComponent().toString().equals("我的电脑"))
return;
Object[]temp= e.getNewLeadSelectionPath().getPath();
String dir= getpath(temp);
File file=new File(dir);
File[]lis=file.listFiles();
node.removeAllChildren();
for(int i=0;i<lis.length;i++)
{
if(lis[i].isDirectory())
{
DefaultMutableTreeNode node1=new DefaultMutableTreeNode(lis[i].getName());
DefaultMutableTreeNode node2=new DefaultMutableTreeNode();
node.add(node1);
node1.add(node2);
}
}
}
}
class Frame1_jTree1_treeWillExpandAdapter implements TreeWillExpandListener {
private Frame1 adaptee;
Frame1_jTree1_treeWillExpandAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void treeWillExpand(TreeExpansionEvent event) {
try {
adaptee.jTree1_treeWillExpand(event);
} catch (javax.swing.tree.ExpandVetoException exception0) {
exception0.printStackTrace();
}
}
public void treeWillCollapse(TreeExpansionEvent event) {
}
}
class Frame1_jTree1_treeSelectionAdapter implements TreeSelectionListener {
private Frame1 adaptee;
Frame1_jTree1_treeSelectionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void valueChanged(TreeSelectionEvent e) {
adaptee.jTree1_valueChanged(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -