繁体   English   中英

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

[英]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?

看看ProgressMonitor

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

看一眼:

更多细节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM