我試圖做一個進度條之類的在我的計劃是將文件發送到服務器的東西。我有這個Remaiming文件大小計數器
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
oos.writeObject(file.getName());
FileInputStream fis = new FileInputStream(file);
byte [] buffer = new byte[Server.BUFFER_SIZE];
Integer bytesRead = 0;
jj = size-bytesRead;
int i = 0;
while ((bytesRead = fis.read(buffer)) > 0) {
oos.writeObject(bytesRead);
jButton3.doClick();
oos.writeObject(Arrays.copyOf(buffer, buffer.length));
}
oos.close();
ois.close();
而這將Button3
temp = temp - 100;
jLabel3.setText(String.valueOf(temp));
temp
是大小選擇的文件,我減去100,因爲它是字節在循環的每一步的大小。
問題是當我開始發送文件時,Button3是灰色的,直到發送結束時沒有任何可見的標籤(比如它太慢以至於無法及時更新標籤),但最終顯示的是正確的數據。
爲什麼不能定期更新的標籤嗎?我應該怎麼做才能解決這個問題?感謝您的任何建議。