作者eliang ()
看板java
标题[问题] 如何手动触发隐藏的awt元件呼叫paint()?
时间Sat Mar 1 19:57:02 2008
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
1F:推 TonyQ:没有container应该画出来也看不到吧 03/01 20:08
2F:→ eliang:我的目的不是让它看得到,只要让它呼叫到就好了 03/01 20:17
3F:推 TonyQ:你可以写canvas.paint(canvas.getGraphics()); 03/01 20:27
4F:→ eliang:谢谢你,我试了,但在canvas隐藏时, 03/01 21:38
5F:→ eliang:getGraphics()回传的是null 03/01 21:40
6F:推 TonyQ:你不是只想呼叫? 只想呼叫这样就够啦XD 03/01 23:26
7F:→ eliang:我希望能执行paint()的程式码,因为JME(一个 java game 03/02 01:17
8F:→ eliang:engine)把起始化程序放在Canvas子类别的paint()里,在第一次 03/02 01:20
9F:→ eliang:paint()才做初始化,而我希望初始化在秀到萤幕上前就先做好 03/02 01:22
10F:→ eliang:,所以才想看看有没有方法可以提早触发paint()的呼叫 03/02 01:24