為什麼drawImage方法不顯示圖片

daixin123321 2015-01-17 10:15:19
public class login extends JFrame{
static int WIDTH = 300;
static int HEIGHT = 300;
String imgUrl = null;
private static Toolkit tk = Toolkit.getDefaultToolkit();
private static Image imgs = tk.getImage(login.class.getClassLoader().getResource("images/11.jpg"));
public static void main(String[] args){
new login().lauchframe();
}
public void lauchframe(){
this.setTitle("登錄");
this.setLocation(400,200);
this.setResizable(false);
this.setSize(WIDTH,HEIGHT);
this.setVisible(true);
}
public void paint(Graphics g){
g.drawImage(imgs, 70, 50, null);
}
}
...全文
487 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
最近也遇到这个问题,发现第一次draw基本不成功,调试发现,通过image.getWidth()和image.getHeight()获取image的宽和高时,第一次会出现-1,后面就正常了,因此会导致第一次draw不成功。 鉴于此,在image创建时,试着调用两次image.getWidth()和image.getHeight(),看看能否凑效。结果真的OK了,各位可以试一下!
爱摸鱼de老邪 2015-02-14
  • 打赏
  • 举报
回复
public void paint(Graphics g){ g.drawImage(imgs, 70, 50, null); } 改为 public void paint(Graphics g) { g.drawImage(imgs,0,0,70,50,this); }
daixin123321 2015-01-24
  • 打赏
  • 举报
回复
這樣確實是可以,只是想不明白為什麼上面的不行.
c352436378 2015-01-22
  • 打赏
  • 举报
回复
可以把imgage放在imageicon类里,然后用getimage()加载,我看过一个视频,里面似乎说过你这种方法加载图片第一次就是不会显示的,再运行一次就行了,这个好像是java的一个bug
daixin123321 2015-01-21
  • 打赏
  • 举报
回复
引用 1 楼 u010005508 的回复:
首先看看你的这个图片资源有没有加载成功!如果成功加载的还不能显示的话,你再将显示的窗体拖出电脑显示屏幕范围外,再拉回来应该就能显示了(这个代码我运行了一下,就算图片加载成功,第一次显示窗体时确实不能显示图片)
為什麼要重新拉回來才能顯示啊?
highnewrain 2015-01-19
  • 打赏
  • 举报
回复
首先看看你的这个图片资源有没有加载成功!如果成功加载的还不能显示的话,你再将显示的窗体拖出电脑显示屏幕范围外,再拉回来应该就能显示了(这个代码我运行了一下,就算图片加载成功,第一次显示窗体时确实不能显示图片)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧