[英]How can I use existing JProgressBar in SftpProgressMonitor instance?
我正在编写一个程序,该程序使用SFTP从服务器下载文件。 我想在程序上有一个进度条,以反映下载进度。 这是我当前的进度监视器代码:
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?
否则,您将需要SwingWorker
或使用SwingUtilities.invokeLater
以确保对JProgressBar
的更新已正确同步到事件调度线程。
看一眼:
更多细节
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.