gpt4 book ai didi

java - 如何为递归算法实现 "Cancel"按钮?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:07:13 27 4
gpt4 key购买 nike

我正在尝试为文件夹同步应用程序中的算法实现“取消”按钮。该算法递归地遍历用户指定的目录结构,将其文件和目录放入 TreeView 中,并根据它们相对于其他文件夹中的等效项是新的、删除的、更改的还是未更改的来标记它们。精简代码供引用:

fillInTreeView(File x, TreeItem root) {
if (x.isFile()) {
newBranch = makeBranch(x.getName(x.getNameCount() - 1).toString(), root);
assignMark(newBranch);
} else {
newBranch = makeBranch(x.getName(x.getNameCount() - 1).toString(), root);
assignMark(newBranch);
fillInTreeView(x, newBranch);
}
}

我对“取消”的含义感到不安。如果我让它从顶部删除树中的所有内容,函数是否会继续添加新内容,从取消算法尚未到达的文件中调用自身,使整个按钮毫无意义?我想我宁愿先问而不是花几天时间来尝试实现它,只是稍后再问并重新发现美国。

最佳答案

像这样尝试:

private static boolean cancelled = false;

fillInTreeView(File x, TreeItem root) {
if(cancelled) return;
if (x.isFile()) {
newBranch = makeBranch(x.getName(x.getNameCount() - 1).toString(), root);
assignMark(newBranch);
} else {
newBranch = makeBranch(x.getName(x.getNameCount() - 1).toString(), root);
assignMark(newBranch);
fillInTreeView(x, newBranch);
}
}

/*Your CLick-Listener*/
public void onClick(){
cancelled = true;
}

关于java - 如何为递归算法实现 "Cancel"按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34721448/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com