package MyTest;
import javax.swing.*;
import javax.swing.tree.*;
import java.awt.event.*;
import java.io.*;public class TreeTest {
private JFrame frame = new JFrame();
private MyTreeModel treeModel = new MyTreeModel();
private JTree tree = new JTree(treeModel)
{
public String convertValueToText(Object value,boolean s,
boolean e, boolean l,
int r, boolean h)
{
return ((File)value).getName();
}
}; public TreeTest() {
frame.getContentPane().add(tree);
String osname = System.getProperty("os.name");
if(osname.startsWith("Windows"))
{
tree.setRootVisible(false);
}
else
{
tree.setRootVisible(true);
}
frame.addWindowListener(new WindowAdapter(){
public void windowClosed(WindowEvent e)
{
System.exit(0);
}
}) ;
frame.pack();
frame.show();
} public static void main(String[] args) {
TreeTest treetest = new TreeTest();
}
}
package MyTest;
import javax.swing.tree.*;
import java.io.*;
import java.util.*;
import javax.swing.event.*;public class MyTreeModel implements TreeModel {
String root = "/";//System.getProperty("user.home");
File rootFile = new File(root);
boolean flag = true;
Vector listener = new Vector();
FileFilter filter = new FileFilter(){
public boolean accept(File path)
{
return !path.isHidden();
}
}; public MyTreeModel() {
String osname = System.getProperty("os.name");
if(!osname.startsWith("Windows"))
{
flag = false;
}
else
{
flag = true;
}
}
public void addTreeModelListener(TreeModelListener l)
{
if(listener != null && l != null)
{
listener.add(l);
}
}
public void removeTreeModelListener(TreeModelListener l)
{
if(listener != null && listener.isEmpty() && listener.contains(l))
{
listener.remove(l);
}
} public Object getRoot()
{
return rootFile;
} public Object getChild(Object parent,int index)
{
if(parent != null)
{ File child[];
if(rootFile.equals((File)parent))
{
child = ((File)parent).listRoots();
}
else
{
child = ((File)parent).listFiles(filter);
}
if(index < child.length)
{
return child[index];
}
else
{
return null;
}
}
else
{
return null;
}
} public int getChildCount(Object parent)
{
if(parent != null)
{
File[] child;// = ((File)parent).listFiles();
if(rootFile.equals((File)parent))
{
child = ((File)parent).listRoots();
}
else
{
child = ((File)parent).listFiles(filter);
}
return child.length;
}
else
{
return 0;
}
} public int getIndexOfChild(Object parent, Object ch)
{
if(parent != null && ch != null)
{
if(((File)parent).isFile())
{
return -1;
}
File[] child;// = ((File)parent).listFiles();
if(rootFile.equals((File)parent))
{
child = ((File)parent).listRoots();
}
else
{
child = ((File)parent).listFiles(filter);
}
for(int i=0;i<child.length;++i)
{
if(child[i].equals((File)ch))
{
return i;
}
}
}
else
{
return -1;
}
return -1;
} public boolean isLeaf(Object node)
{
if(node != null)
return ((File)node).isFile();
else
{
return false;
}
} public void valueForPathChanged(TreePath tp,Object newValue)
{
}}这段代码可以运行,但是有问题:
1:每次运行时,不知道为什么,都一直读软驱(读光驱时也有问题,请问怎么处理?)
2:运行后没有盘符的名称.怎么办?
import javax.swing.*;
import javax.swing.tree.*;
import java.awt.event.*;
import java.io.*;public class TreeTest {
private JFrame frame = new JFrame();
private MyTreeModel treeModel = new MyTreeModel();
private JTree tree = new JTree(treeModel)
{
public String convertValueToText(Object value,boolean s,
boolean e, boolean l,
int r, boolean h)
{
return ((File)value).getName();
}
}; public TreeTest() {
frame.getContentPane().add(tree);
String osname = System.getProperty("os.name");
if(osname.startsWith("Windows"))
{
tree.setRootVisible(false);
}
else
{
tree.setRootVisible(true);
}
frame.addWindowListener(new WindowAdapter(){
public void windowClosed(WindowEvent e)
{
System.exit(0);
}
}) ;
frame.pack();
frame.show();
} public static void main(String[] args) {
TreeTest treetest = new TreeTest();
}
}
package MyTest;
import javax.swing.tree.*;
import java.io.*;
import java.util.*;
import javax.swing.event.*;public class MyTreeModel implements TreeModel {
String root = "/";//System.getProperty("user.home");
File rootFile = new File(root);
boolean flag = true;
Vector listener = new Vector();
FileFilter filter = new FileFilter(){
public boolean accept(File path)
{
return !path.isHidden();
}
}; public MyTreeModel() {
String osname = System.getProperty("os.name");
if(!osname.startsWith("Windows"))
{
flag = false;
}
else
{
flag = true;
}
}
public void addTreeModelListener(TreeModelListener l)
{
if(listener != null && l != null)
{
listener.add(l);
}
}
public void removeTreeModelListener(TreeModelListener l)
{
if(listener != null && listener.isEmpty() && listener.contains(l))
{
listener.remove(l);
}
} public Object getRoot()
{
return rootFile;
} public Object getChild(Object parent,int index)
{
if(parent != null)
{ File child[];
if(rootFile.equals((File)parent))
{
child = ((File)parent).listRoots();
}
else
{
child = ((File)parent).listFiles(filter);
}
if(index < child.length)
{
return child[index];
}
else
{
return null;
}
}
else
{
return null;
}
} public int getChildCount(Object parent)
{
if(parent != null)
{
File[] child;// = ((File)parent).listFiles();
if(rootFile.equals((File)parent))
{
child = ((File)parent).listRoots();
}
else
{
child = ((File)parent).listFiles(filter);
}
return child.length;
}
else
{
return 0;
}
} public int getIndexOfChild(Object parent, Object ch)
{
if(parent != null && ch != null)
{
if(((File)parent).isFile())
{
return -1;
}
File[] child;// = ((File)parent).listFiles();
if(rootFile.equals((File)parent))
{
child = ((File)parent).listRoots();
}
else
{
child = ((File)parent).listFiles(filter);
}
for(int i=0;i<child.length;++i)
{
if(child[i].equals((File)ch))
{
return i;
}
}
}
else
{
return -1;
}
return -1;
} public boolean isLeaf(Object node)
{
if(node != null)
return ((File)node).isFile();
else
{
return false;
}
} public void valueForPathChanged(TreePath tp,Object newValue)
{
}}这段代码可以运行,但是有问题:
1:每次运行时,不知道为什么,都一直读软驱(读光驱时也有问题,请问怎么处理?)
2:运行后没有盘符的名称.怎么办?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货