Del*_*ens 0 java events object
EventQueue.invokeLater(new Runnable()
{
public void run()
{
ZipTestFrame frame = new ZipTestFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
Run Code Online (Sandbox Code Playgroud)
该代码创建了一个实现runnable的匿名类的实例.该对象作为参数传递给EventQueue.invokeLater,稍后将调用它(意味着它将在稍后的某个时间点调用该对象上的run方法).
您不需要变量来指向该对象,因为您只在该实例中使用该对象.(假定对象被作为参数传递和参数是局部变量)的invokeLater确实有一个局部变量指向对象的方法中,它用来存储在事件队列中,现在还引用该对象的对象,直到从队列中调用并删除对象,此时它可以进行垃圾回收.
附录:
简单事件队列的原始示例:
class MyEventQueue {
Queue<Runnable> queue = new LinkedList<Runnable>();
public void invokeLater(Runnable r) {
queue.add(r);
}
public boolean hasNext() {
return !queue.isEmpty();
}
public void processNext() {
queue.poll.run();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |