SwingUtilities.invokeLater(new Runnable() {
public void run() {
Example ex = new Example();
ex.setVisible(true);
}
});
Run Code Online (Sandbox Code Playgroud)
这里是一段代码new Runnable().我如何理解这段代码?我不记得我们可以直接将代码块传递给java中的任何对象.
它不是代码块.这是一个对象.
当你说,
new Runnable()
Run Code Online (Sandbox Code Playgroud)
您正在创建一个实现Runnable接口的对象,特别是该run()方法.
正如方法名称所示,invokeLater()将run()在稍后的某个时间点调用runnable接口实现对象(或Runnable对象)的方法.
正如另一张海报所提到的,这是匿名类的一个例子.这是一种以更简洁的方式快速编写代码的便利机制.如果你不喜欢这样,你可以这样做 -
创建一个实现Runnable的新类 -
public class RunnableImplementation implements Runnable
{
public void run()
{
Example ex = new Example();
ex.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您的示例中的代码变为 -
SwingUtilities.invokeLater(new RunnableImplementation());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
899 次 |
| 最近记录: |