Re: [问题] EventQueue.invokeLater 使用疑问

楼主: noapaov (单身汉)   2015-04-29 13:43:20
了解, 谢谢回复, 不过很好奇的是
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
System.out.println("test");
new NewJFrame().setVisible(true);
}
});
这边做了new Runnable() {public void run(){} }
是代表将Runnable实体化吗? 看不太懂这句,
我感觉只是把Runnable接口实体化当作invokeLater的参数,
只是接口本身不是不可以实体化吗? Runnable为什么可以new呢?
※ 引述《noapaov (单身汉)》之铭言:
: 请教一下各位, 目前在Swing碰到一个疑问,
: 看了大多数的书籍, 在使用Swing建议使用方法如下
: public static void main(String args[]) {
: java.awt.EventQueue.invokeLater(new Runnable() {
: public void run() {
: System.out.println("test");
: new NewJFrame().setVisible(true);
: }
: });
: }
: 也就是视窗程式会开一个thread来处理Event Queue和GUI的事情,
: 但我是用下列方法一样会产生该视窗物件, 也没发生什么错误
: public static void main(String args[]) {
: new NewJFrame().setVisible(true);
: }
: 想请问各位大大, 这两著到底差别在哪? 谢谢
作者: jacktomato   2015-04-29 14:12:00
因为new Runnable的同时后面也实作了这个接口的run方法 所以当然是可以的这等同于 你宣告一个class然后此class实作Runnable
楼主: noapaov (单身汉)   2015-04-29 14:47:00
主要是之前实作接口, 都是类似class obj implement interface,书上又说接口不能new才让我很困惑 , 怎么new Runnable()了
作者: Expsun (无限燃烧)   2015-04-29 14:57:00
Anonymous class

Links booklink

Contact Us: admin [ a t ] ucptt.com