gpt4 book ai didi

java - 如何在 SftpProgressMonitor 实例中使用现有的 JProgressBar?

转载 作者:太空宇宙 更新时间:2023-11-04 14:25:18 25 4
gpt4 key购买 nike

我正在编写一个程序,使用 SFTP 从服务器下载文件。我希望程序上有一个进度条来反射(reflect)下载进度。这是我当前的进度监视器代码:

public class SystemOutProgressMonitor implements SftpProgressMonitor
{
public SystemOutProgressMonitor() {;}

public void init(int op, java.lang.String src, java.lang.String dest, long max)
{
System.out.println("STARTING: "+op+" "+src+" -> "+dest+" total: "+max);
}

public boolean count(long bytes)
{
for(int x=0;x<bytes;x++) {
System.out.println("#");
}
return(true);
}

public void end()
{
System.out.println("\nFINISHED!");
}
}

这对于输出到控制台来说效果很好,但是,我不知道如何将现有的进度条变量传递给它。

我使用的 JProgressBar 位于我的 Menu.java 类中,在这个类中有一个下载按钮,它调用我的 Sftp.java 类中相应的下载方法,从那里,SystemOutProgressMonitor 被调用:

sftpChannel.get(target, destination, new SystemOutProgressMonitor());

那么我是否可以将进度条从 Menu.java 传递到 Sftp.java,然后传递到 SystemOutProgressMonitor?

最佳答案

看看ProgressMonitor

否则,您将需要 SwingWorker 或使用 SwingUtilities.invokeLater 来确保 JProgressBar 的更新同步到事件调度正确线程。

看一下:

了解更多详情

关于java - 如何在 SftpProgressMonitor 实例中使用现有的 JProgressBar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26744688/

25 4 0
文章推荐: html - 在
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com