📄 filesystemmodel.java
字号:
/*
* FileSystemModel.java
*
* Created on 2007年8月3日, 下午11:20
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package explorer;
/**
*
* @author king
*/
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.util.*;
class myFile extends File{
myFile (String name){
super(name);
}
myFile (File parent,String child)
{
super(parent,child);
}
public String toString(){
return this.getName();
}
}
class FileSystemModel implements TreeModel{
private File[] root;
private Vector<File> rootvector;
private Vector listeners;
/** Creates a new instance of FileSystemModel */
public FileSystemModel(){
root = File.listRoots();
rootvector = new Vector<File>();
for (int i=0;i<root.length;i++)
rootvector.addElement(root[i]);
listeners = new Vector();
}
public boolean isRootVector(Object e)
{
boolean result = false;
if(e.equals(rootvector))
result = true;
return result;
}
public Object getRoot(){
return rootvector;
}
public Object getChild(Object parent,int index){
if (!isRootVector(parent))
{
File directory = (File) parent;
File[] directoryMembers = directory.listFiles(new Filter());
return (new myFile(directoryMembers[index].getAbsolutePath()));
}
else
{
return (root[index]);
}
}
public int getChildCount(Object parent){
if (!isRootVector(parent))
{
File fileSystemMember = (File) parent;
if (fileSystemMember.isDirectory())
{
File[] directoryMembers = fileSystemMember.listFiles(new Filter());
return directoryMembers.length;
}
else
{
return 0;
}
}
else
{
return root.length;
}
}
public int getIndexOfChild(Object parent,Object child){
if (!isRootVector(parent))
{
File directory = (File)parent;
File directoryMember = (File)child;
File[] directoryMemberNames = directory.listFiles(new Filter());
int result = -1;
for (int i=0;i<directoryMemberNames.length;++i)
{
if (directoryMember.equals(directoryMemberNames[i]))
{
result = i;
break;
}
}
return result;
}
else
{
int result = -1;
for (int i=0;i<root.length;i++)
{
if(child.equals(root[i]))
{
result = i;
break;
}
}
return result;
}
}
public boolean isLeaf(Object node){
if (!isRootVector(node))
return ((File)node).isFile();
else
return false;
}
public void addTreeModelListener(TreeModelListener I){
if (I!= null&&!listeners.contains(I)){
listeners.addElement(I);
}
}
public void removeTreeModelListener(TreeModelListener I){
if (I!=null)
{
listeners.removeElement(I);
}
}
public void valueForPathChanged(TreePath path,Object newValue){}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -