📄 frame1.java~68~
字号:
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;
import javax.swing.tree.DefaultTreeCellRenderer;
import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JSplitPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.util.ArrayList;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
public class Frame1 extends JFrame {
BorderLayout borderLayout1 = new BorderLayout();
DefaultMutableTreeNode root=new DefaultMutableTreeNode("我的电脑");
DefaultTreeCellRenderer de=new DefaultTreeCellRenderer();
ImageIcon img1=new ImageIcon("d:\\comp1.gif");
JSplitPane jSplitPane1 = new JSplitPane();
JScrollPane jScrollPane1 = new JScrollPane();
JScrollPane jScrollPane2 = new JScrollPane();
JTree jTree1 = new JTree(root);
MytableModel table=new MytableModel();
JTable jTable1 = new JTable();
ArrayList list;
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 {
de.setTextSelectionColor(Color.red);
de.setClosedIcon(img1);
this.jTree1.setCellRenderer(de);
jbInit();
create_treenode(root);
this.jTable1.setModel(this.table);
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
getContentPane().setLayout(borderLayout1);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jTree1.addTreeSelectionListener(new Frame1_jTree1_treeSelectionAdapter(this));
jScrollPane2.addMouseListener(new Frame1_jScrollPane2_mouseAdapter(this));
jTable1.addMouseListener(new Frame1_jTable1_mouseAdapter(this));
this.getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER);
jSplitPane1.add(jScrollPane1, JSplitPane.LEFT);
jScrollPane1.getViewport().add(jTree1);
jSplitPane1.add(jScrollPane2, JSplitPane.RIGHT);
jScrollPane2.getViewport().add(jTable1);
}
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);
try {
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);
}
}
} catch (Exception ex) {
}
}
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);
this.list=new ArrayList();
try {
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);
}
else
{
list.add(lis[i]);
}
}
this.table.setdata(list);
this.jTable1.updateUI();
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
public void jScrollPane2_mouseClicked(MouseEvent e) {
}
public void jTable1_mouseClicked(MouseEvent e) {
}
public void jTable1_mouseReleased(MouseEvent e) {
int ok= this.jTable1.getSelectedRow();
String file= (String)this.table.getValueAt(ok,0);
Object []temp= this.jTree1.getSelectionPath().getPath();
String dir=this.getpath(temp);
dir=dir.substring(0,dir.length()-1);
dir=dir+file;
System.out.println(dir);
try {
String []d=new String[1];
d[0]=dir;
Runtime.getRuntime().exec(dir);
} catch (Exception ex) {
}
}
}
class Frame1_jTable1_mouseAdapter extends MouseAdapter {
private Frame1 adaptee;
Frame1_jTable1_mouseAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.jTable1_mouseClicked(e);
}
public void mouseReleased(MouseEvent e) {
adaptee.jTable1_mouseReleased(e);
}
}
class Frame1_jScrollPane2_mouseAdapter extends MouseAdapter {
private Frame1 adaptee;
Frame1_jScrollPane2_mouseAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.jScrollPane2_mouseClicked(e);
}
}
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);
}
}
class Frame1_jTree1_treeWillExpandAdapter implements TreeWillExpandListener {
private Frame1 adaptee;
Frame1_jTree1_treeWillExpandAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void treeWillExpand(TreeExpansionEvent event) {
try {
this.adaptee.jTree1_treeWillExpand(event);
} catch (ExpandVetoException ex) {
}
}
public void treeWillCollapse(TreeExpansionEvent event) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -