繁体   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