A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张向辉 于 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难道没有被调用?还是其他原因?

评分

参与人数 1黑马币 +6 收起 理由
Rancho_Gump + 6 赞一个!

查看全部评分

6 个回复

倒序浏览

回帖奖励 +2

在drawimage的构造方法中加入super()调用父方法的构造方法试试
回复 使用道具 举报
学习一下,还没学到这里
回复 使用道具 举报
问题出在第18行:
di.getGraphics().drawImage(img, 0, 0, di);drawImage将img图片写入di中时,在加载到内存中时需要一定的时间;
当图片信息没加载完成程序就执行完了,所以di中没有图片信息!
这样改改就行:while(!di.getGraphics().drawImage(img, 0, 0, di)){;}。
ok了!涉及到GUI中的缓冲技术!

回复 使用道具 举报

回帖奖励 +2

{:soso_e179:}
回复 使用道具 举报
高境 发表于 2013-2-1 19:25

说实话,挺想加加技术分的,:)
回复 使用道具 举报

回帖奖励 +2

前来学习下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马