📄 filenode.java
字号:
package SpellCheck;
import java.io.File;
import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.tree.DefaultMutableTreeNode;
class FileNode{
protected File m_file;
public FileNode(File file){
m_file = file;
}
public File getFile(){
return m_file;
}
public String toString(){
return m_file.getName().length() > 0 ? m_file.getName() : m_file.getPath();
}
public boolean expand(DefaultMutableTreeNode parent){
DefaultMutableTreeNode flag = (DefaultMutableTreeNode)parent.getFirstChild();
if (flag==null) //第一个子节点为空
return false;
Object obj = flag.getUserObject();
if (!(obj instanceof Boolean))
return false; //已展开
parent.removeAllChildren(); //移除所有子节点
File[] files = listFiles();
if (files == null)
return true; //未展开
Vector<FileNode> v = new Vector<FileNode>();
for (int k=0; k<files.length; k++){
File f = files[k];
if (!(f.isDirectory()))
continue;
FileNode newNode = new FileNode(f);
boolean isAdded = false;
for (int i=0; i<v.size(); i++){
FileNode nd = (FileNode)v.elementAt(i);
if (newNode.compareTo(nd) < 0){
v.insertElementAt(newNode, i);
isAdded = true;
break;
}
}
if (!isAdded)
v.addElement(newNode);
}
for (int i=0; i<v.size(); i++){
FileNode nd = (FileNode)v.elementAt(i);
IconData idata = new IconData(FileTree.ICON_FOLDER,FileTree.ICON_EXPANDEDFOLDER, nd);
DefaultMutableTreeNode node = new
DefaultMutableTreeNode(idata);
parent.add(node);
if (nd.hasSubDirs())
node.add(new DefaultMutableTreeNode(new Boolean(true) ));
}
return true;
}
public boolean hasSubDirs(){
File[] files = listFiles();
if (files == null)
return false;
for (int k=0; k<files.length; k++){
if (files[k].isDirectory())
return true;
}
return false;
}
public int compareTo(FileNode toCompare){
return m_file.getName().compareToIgnoreCase(toCompare.m_file.getName() );
}
protected File[] listFiles(){
if (!m_file.isDirectory())
return null;
try{
return m_file.listFiles();
}
catch (Exception ex){
JOptionPane.showMessageDialog(null,"不能读取文件夹 "+m_file.getAbsolutePath(),"错误",2);
return null;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -