首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JProgressBar更新

JProgressBar更新
EN

Stack Overflow用户
提问于 2011-08-31 10:20:36
回答 2查看 790关注 0票数 1

有人能帮我吗?我会很感激的。我有示例代码:

代码语言:javascript
复制
....
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

EN

回答 2

Stack Overflow用户

发布于 2011-08-31 10:41:43

JTable的表模型应该有一列“下载进度”,包含下载百分比值(即0到100之间的数字)。

应将自定义表单元格呈现器与此列关联。呈现器将使用进度条来显示表单元格中包含的百分比(即唯一方法valueTableCellRenderer参数)。

若要更新进度条,应在表模型中为适当的单元格设置一个新值。然后,这个更改将触发一个TableModelEvent (它是用DefaultTableModel自动完成的,但是如果要子类AbstractTableModel,则必须调用fireTableCellUpdated )。该事件将被JTable“捕获”,它将刷新该值,从而使用要显示的新值调用呈现器。

关于表的swing教程

票数 3
EN

Stack Overflow用户

发布于 2011-08-31 10:25:23

我不完全理解你的问题,但首先我要说的是.

假设您没有在分派线程上下载(这将是个坏主意),下面的调用:

代码语言:javascript
复制
prog.setValue((int) wartosc);

可能需要包装在SwingUtilities.invokeLater中。

这是因为Swing是线程不安全的,需要从单个线程访问Swing框架的对象。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7255588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档