有人能帮我吗?我会很感激的。我有示例代码:
....
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?
发布于 2011-08-31 10:41:43
JTable的表模型应该有一列“下载进度”,包含下载百分比值(即0到100之间的数字)。
应将自定义表单元格呈现器与此列关联。呈现器将使用进度条来显示表单元格中包含的百分比(即唯一方法value的TableCellRenderer参数)。
若要更新进度条,应在表模型中为适当的单元格设置一个新值。然后,这个更改将触发一个TableModelEvent (它是用DefaultTableModel自动完成的,但是如果要子类AbstractTableModel,则必须调用fireTableCellUpdated )。该事件将被JTable“捕获”,它将刷新该值,从而使用要显示的新值调用呈现器。
读关于表的swing教程。
发布于 2011-08-31 10:25:23
我不完全理解你的问题,但首先我要说的是.
假设您没有在分派线程上下载(这将是个坏主意),下面的调用:
prog.setValue((int) wartosc);可能需要包装在SwingUtilities.invokeLater中。
这是因为Swing是线程不安全的,需要从单个线程访问Swing框架的对象。
https://stackoverflow.com/questions/7255588
复制相似问题