关于invokeLater()方法

westlifejxb 2008-11-25 08:25:17
EventQueue.invokeLater()
谁能给出这个方法的的理解,尽量说得明白些.


顺便解释下:什么叫做挂起的事件?
...全文
1145 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dalianfox 2010-12-01
  • 打赏
  • 举报
回复
// SwingUtilities.invokeLater(new Runnable() {
// public void run() {
// repaint();
// }
// });//该步最为重要

注释掉也没有任何影响啊,哪位知道怎么回事?
link_biao 2010-10-06
  • 打赏
  • 举报
回复
亏人家答了那么多,你竟然一分儿都没给……
link_biao 2010-10-06
  • 打赏
  • 举报
回复
说得还是有点迷惑的,要是能举个例子就好了,比如我常见有人把new JFrame() 之类的放进来,还有什么典型例子吗?
antlovestudy 2010-10-01
  • 打赏
  • 举报
回复
学习了
xin_wu_hen 2010-08-20
  • 打赏
  • 举报
回复
这个程序是一个通过线程和EventQueue机制,实现控件数据实时更新的例子
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;

public class UpdateKongjian extends JFrame
{

public UpdateKongjian() {
setBounds(100,100,200,200);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JLabel jl = new JLabel("1",SwingConstants.CENTER);
getContentPane().add(jl);

Thread t = new Thread() {
private int i=0;
public void run() {
while(true) {
jl.setText(Integer.toString(i));
SwingUtilities.invokeLater(new Runnable() {
public void run() {
repaint();
}
});//该步最为重要
i++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
};
t.start();
}
public static void main(String[] args) {
new UpdateKongjian();

}

}
DLM8207 2008-12-04
  • 打赏
  • 举报
回复
我也遇到同样的问题,我在run()中更新控件数据,但我想在按钮事件结束前,把更新的每一步反映到控件页面上,但就是做不到,那位大侠可以帮忙解释一下呢
shenjie1989 2008-11-25
  • 打赏
  • 举报
回复
就是说你自己定义了一个线程事件 你需要它运行 当它运行一段时间后为了实现某项功能你需要它停止 或者休眠 比如stop() sleep()方法 我们叫线程挂起
renmms 2008-11-25
  • 打赏
  • 举报
回复
在java的主线程(Main Thread)中是使用事务的方式来处理事件的,主线程中有一个事件队列,

当你所要做的动作将被放到主线程中处理而又不需要马上处理(或不想中断目前正在执行的事务),

则可以使用InvokeLater方法将该事务放到事件队列的最后。

让主线程自行执行。

使用InvokeLater不知道在什么时候会执行该事务,但好处是不会和其它事务起冲突。
bzwm 2008-11-25
  • 打赏
  • 举报
回复
在java的主线程中使用事务的方式来处理事件,
主线程维护一个事件队列,
当一个你想要放在主线程里要做的事情,但不用立刻去做,
或者不想中止当前事务,
调用EventQueue.invokeLater(runner);把该事物放在事件队列最后,
让主线程自行执行。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧