簡體   English   中英

JProgressBar更新

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM