0
這是一個服務器,它從客戶端接收文件。它收到完整的文件,但進度條不顯示。我正在使用ProgressInputStream。這裏是我使用SwingWorker爲進度條創建新線程的一段代碼。ProgressMonitorInputStream不彈出
SwingWorker<Void,Void> worker = new SwingWorker<Void,Void>()
{
protected Void doInBackground()
{
try {
ss = new ServerSocket(port);
s = ss.accept();
bytes = new byte[1024];
FileOutputStream fos = new FileOutputStream(new File(FileName));
DataInputStream dis = new DataInputStream(s.getInputStream());
pmis = new ProgressMonitorInputStream(frame,"Receiving",dis);
pmis.getProgressMonitor().setMillisToPopup(10);
while(pmis.read(bytes) > 0)
{
fos.write(bytes);
}
ss.close();
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
};
worker.execute();
任何幫助,將不勝感激。對不起,我的英語不好。感謝預期。
對不起,但它沒有彈出。我已經嘗試發送700多MB的文件,但沒有運氣。我也已經設置彈出時間爲10毫秒。 'pmis.getProgressMonitor()。setMillisToPopup(10);' – essaji 2014-12-03 13:12:36
嘗試調用'setMaximum()'來代替,如果你有任何想法提前有多大的文件。 – EJP 2014-12-05 08:44:22
我認爲問題是FileOutputStream需要關閉才能顯示彈出進度條,但我無法關閉FileOutputStream因爲數據正在通過此流存儲。我找不到解決這個問題的辦法。 – essaji 2014-12-05 13:30:21