[英]JProgressBar update
有人可以幫我嗎? 我會很感激。 我有示例代碼:
....
int sizeFile;
RandomAccessFile raf;
InputStream in;
int val= 0;
int downloaded= 0;
while((val=in.read(buff)) != -1)
{
raf.write(buff, 0, val);
downloaded+= val;
float wartosc = ((float) downloaded/ sizeFile) * 100;
prog.setValue((int)wartosc);
}
我的問題是jprogressbar如何放在單元格表中,更新變量wartosc ?
JTable的表模型應具有“下載進度”列,其中包含下載百分比值(即0到100之間的數字)。
您應該將自定義表格單元格渲染器與此列相關聯。 渲染器將使用進度條顯示表單元格中包含的百分比(即TableCellRenderer
的唯一方法的value
參數)。
要更新進度條,您應該為表模型中的適當單元格設置一個新值。 然后,此更改將觸發TableModelEvent
(使用DefaultTableModel
自動完成,但是如果要繼承AbstractTableModel
則必須調用fireTableCellUpdated
)。 JTable將“捕獲”該事件,該JTable將刷新該值,然后使用要顯示的新值調用渲染器。
不能完全確定我了解您的問題,但是從這里開始...
假設您沒有在調度線程上進行下載(這是個壞主意),請執行以下調用:
prog.setValue((int) wartosc);
可能需要包裝在SwingUtilities.invokeLater
。
這是因為Swing是線程不安全的,並且需要從單個線程訪問Swing框架的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.