看板 java 關於我們 聯絡資訊
Hi, 由於某種原因, 我希望 java.awt.Canvas 在被加入到 JFrame 並顯示在螢幕上之前, 就先呼叫 canvas.paint(), 即: Canvas canvas = new Canvas(); ← 希望 new 完 Canvas 之後, 就能在這裡呼叫 canvas.paint() JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(canvas); frame.setVisible(true); 我知道這個要求很奇怪, 不過還是想請問該怎麼做? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.133.199
TonyQ:沒有container應該畫出來也看不到吧 03/01 20:08
eliang:我的目的不是讓它看得到,只要讓它呼叫到就好了 03/01 20:17
TonyQ:你可以寫canvas.paint(canvas.getGraphics()); 03/01 20:27
eliang:謝謝你,我試了,但在canvas隱藏時, 03/01 21:38
eliang:getGraphics()回傳的是null 03/01 21:40
TonyQ:你不是只想呼叫? 只想呼叫這樣就夠啦XD 03/01 23:26
eliang:我希望能執行paint()的程式碼,因為JME(一個 java game 03/02 01:17
eliang:engine)把起始化程序放在Canvas子類別的paint()裡,在第一次 03/02 01:20
eliang:paint()才做初始化,而我希望初始化在秀到螢幕上前就先做好 03/02 01:22
eliang:,所以才想看看有沒有方法可以提早觸發paint()的呼叫 03/02 01:24