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