【发布时间】:2020-07-13 15:58:36
【问题描述】:
我是编程初学者。我想创建总指挥官应用程序。我没有更大的问题,但我无法解决。
要打印我的树,我使用从 JTreeModel 实现的类 TreeConstructor 中的函数 getChild()。它工作得很好,但它不仅打印文件名,还打印文件或目录的所有路径。我想过创建 myJTree 类,该类将从 JTree 类扩展并覆盖打印节点的函数,但实际上我不知道这个函数和她的名字在哪里。
类 TreeConstructor 实现 TreeModel {
//To constructor we need to give path
//From where it it starts painting a tree
protected File root;
public TreeConstructor(File root) { this.root = root; }
//Giving root of a tree
@Override
public Object getRoot() {
return root;
}
//Function to change root
public void rootChanger(Object parent) {
this.root = (File)parent;
}
@Override
public Object getChild(Object parent, int index) {
String[] children = ((File)parent).list();
if((children.length<=index)||(children == null))return null;
return new File((File)parent,children[index]);
}
@Override
public int getChildCount(Object parent) {
String[] children = ((File)parent).list();
if(children == null) return 0;
return children.length;
}
@Override
public boolean isLeaf(Object node) { return ((File)node).isFile(); }
@Override
public int getIndexOfChild(Object parent, Object child) {
String[] children = ((File)parent).list();
if (children == null) return -1;
String childname = ((File)child).getName();
for(int i = 0; i < children.length; i++) {
if (childname.equals(children[i])) return i;
}
return -1;
}
@Override
public void valueForPathChanged(TreePath path, Object newValue) {}
@Override
public void addTreeModelListener(TreeModelListener l) {}
@Override
public void removeTreeModelListener(TreeModelListener l) {}
这是我的应用程序: https://i.stack.imgur.com/6AsiV.jpg
我会感谢你的帮助丹尼尔
【问题讨论】: