看板 java 關於我們 聯絡資訊
了解, 謝謝回覆, 不過很好奇的是 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://www.ptt.cc/bbs/java/M.1430286202.A.865.html
jacktomato: 因為new Runnable的同時後面也實作了這個介面的run方 04/29 14:12
jacktomato: 法 所以當然是可以的 04/29 14:13
jacktomato: 這等同於 你宣告一個class然後此class實作Runnable 04/29 14:14
noapaov: 主要是之前實作介面, 都是類似 04/29 14:47
noapaov: class obj implement interface,書上又說介面不能new 04/29 14:48
noapaov: 才讓我很困惑 , 怎麼new Runnable()了 04/29 14:49
Expsun: Anonymous class 04/29 14:57