1
我正在編寫一個程序,使用SFTP從服務器下載文件。我想在程序上有一個反映下載進度的進度條。這是我對目前的進度監視器代碼:如何在SftpProgressMonitor實例中使用現有的JProgressBar?
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!");
}
}
也能正常工作,輸出到控制檯,但是,我不知道如何對現有的進度條變量傳遞到這一點。
,我使用駐留在我的Menu.java類的JProgressBar,在這個類中有一個下載按鈕調用我Sftp.java類相應的下載方法,從那裏,SystemOutProgressMonitor被稱爲:
sftpChannel.get(target, destination, new SystemOutProgressMonitor());
所以我會將Menu.java的進度條傳遞給Sftp.java,然後傳遞給SystemOutProgressMonitor?
所有我想要做的是設置在現有的價值SystemOutProgressMonitor的count方法內的進度條,可以嗎? – ReidandKat 2014-11-04 21:16:42
是的,但是因爲您沒有提供任何代碼,顯示很難知道該提出什麼建議甚至是什麼問題。請參閱第二段,瞭解您需要做什麼來確保您不違反Swing的單線程規則 – MadProgrammer 2014-11-04 21:18:13