黑马程序员技术交流社区

标题: getGraphics().drawImage(),图片没事显示!看看代码吧! [打印本页]

作者: 逍林游    时间: 2013-1-27 18:43
标题: getGraphics().drawImage(),图片没事显示!看看代码吧!
本帖最后由 张向辉 于 2013-1-29 11:50 编辑
  1. public class DrawImage extends Frame{
  2. Image img = getToolkit().getImage("E:\\test\\03_06_nofp_bg.gif");
  3. public DrawImage(){
  4. addWindowListener(new WindowAdapter(){
  5. public void windowClosing(WindowEvent e){
  6. dispose();
  7. System.exit(0);
  8. }
  9. });
  10. }
  11. public static void main(String [] args)
  12. {
  13. DrawImage di = new DrawImage();
  14. di.setSize(500,500);
  15. di.setTitle("DrawImage");

  16. di.setVisible(true);
  17. di.getGraphics().drawImage(img, 0, 0, di);
  18. }
  19. }
复制代码
运行后窗口中没有显示图片“E:\\test\\03_06_nofp_bg.gif”,drawImage难道没有被调用?还是其他原因?
作者: 小学生0987    时间: 2013-1-27 21:00
在drawimage的构造方法中加入super()调用父方法的构造方法试试
作者: 郭孟涛    时间: 2013-1-27 22:02
学习一下,还没学到这里
作者: 逍林游    时间: 2013-1-28 11:43
问题出在第18行:
di.getGraphics().drawImage(img, 0, 0, di);drawImage将img图片写入di中时,在加载到内存中时需要一定的时间;
当图片信息没加载完成程序就执行完了,所以di中没有图片信息!
这样改改就行:while(!di.getGraphics().drawImage(img, 0, 0, di)){;}。
ok了!涉及到GUI中的缓冲技术!


作者: 高境    时间: 2013-2-1 19:25
{:soso_e179:}
作者: 逍林游    时间: 2013-2-2 08:59
高境 发表于 2013-2-1 19:25

说实话,挺想加加技术分的,:)
作者: 丁强强    时间: 2013-2-2 09:13
前来学习下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2