JLabe的setText方法不能及时显示的问题 计算之前标签显示“计算时间=0”,我想在执行一段计算之前让标签显示“计算中”,计算之后再让标签显示显示计算所用的时间,可每次都不显示“计算中”,直接等计算完成标签才更新为计算所用的时间(每次计算的时间在5秒以上),请高手帮忙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好先private Label label=null;每次事件label=new Label();label.setText("")试试 你计算前 有调用setText方法吗 质疑~ 试试这个:SwingUtilities.invokeLater(new Runnable() { public void run() { //更改JLabel }});//计算... 可以用這個 可以試試改變文字后 updateUI()下 创建线程进行不断的更新label类的时间值当工作完毕时终止线程即可! 将你的代码,放到线程run()中就可以实现了, label.setText("计算中");new Thread() { public void run() { int itime = 0; // 此处为计算过程代码...... final int I_TIME = itime; javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { label.setText("计算时间=" + I_TIME); } }); }}.start(); 我也遇到了这个问题,我编写的模仿Windows记事本,读取大文件时十分慢(已经比Windows记事本快多了),我就想在读取之前给个提示,把显示文本的区域setText("正在读取文件,请稍等"),但是这样并不姓,这句话从来没显示过。我估计是因为CPU太忙,没给他显示。以前用VB的时候,默认也是这样的,那是我们的解决办法就是在这一局后面加上DoEvents。可惜Java里边没有类似的语句。只能自己想办法。 对象定义疑问? 数据结构和JAVA 一个关于Socket,IO的小问题,请教各位高人 equals == 如何不用排序例如(冒泡算法)这样的方法对三个数排序? 求高手将一段JS代码转换成以Java来实现 小弟愚见,一个奇怪的问题 问个菜鸟问题,我是新手。 关于FTP Resin配置让我一筹莫展,请帮忙! 请问J2SDK最新版是多少? jdbc连接oracle仍然报错
public void run() {
//更改JLabel
}
});
//计算
...
可以用這個 可以試試改變文字后 updateUI()下
当工作完毕时终止线程即可!
label.setText("计算中");
new Thread() {
public void run() {
int itime = 0;
// 此处为计算过程代码......
final int I_TIME = itime;
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
label.setText("计算时间=" + I_TIME);
}
});
}
}.start();
我估计是因为CPU太忙,没给他显示。
以前用VB的时候,默认也是这样的,那是我们的解决办法就是在这一局后面加上DoEvents。
可惜Java里边没有类似的语句。只能自己想办法。