作者noapaov (单身汉)
看板java
标题Re: [问题] EventQueue.invokeLater 使用疑问
时间Wed Apr 29 13:43:20 2015
了解, 谢谢回覆, 不过很好奇的是
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);
: }
: 想请问各位大大, 这两着到底差别在哪? 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 203.69.59.91
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1430286202.A.865.html
1F:推 jacktomato: 因为new Runnable的同时後面也实作了这个介面的run方 04/29 14:12
2F:→ jacktomato: 法 所以当然是可以的 04/29 14:13
3F:→ jacktomato: 这等同於 你宣告一个class然後此class实作Runnable 04/29 14:14
4F:→ noapaov: 主要是之前实作介面, 都是类似 04/29 14:47
5F:→ noapaov: class obj implement interface,书上又说介面不能new 04/29 14:48
6F:→ noapaov: 才让我很困惑 , 怎麽new Runnable()了 04/29 14:49
7F:推 Expsun: Anonymous class 04/29 14:57