为什么图片不显示?

jarken 2007-12-23 04:48:42
package com.image;



import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class ImageTest extends JFrame{

/**
*
*/
private static final long serialVersionUID = 3774751825513743306L;
public void paint(Graphics g) {
Image image=Toolkit.getDefaultToolkit().getImage("d:\\1.jpg");
g.drawImage(image,100,100, null);
super.paint(g);
}
public ImageTest() {
this.setTitle("my image");
this.setSize(500, 400);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
public static void main(String[] args) {
new ImageTest();
}

}
为什么图片不显示?
但是把界面拉大,图片一闪,还是没有?
郁闷?
请帮忙!!
...全文
170 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jarken 2007-12-26
  • 打赏
  • 举报
回复
谢谢啦!!!
daimojingdeyu 2007-12-25
  • 打赏
  • 举报
回复
g.drawImage(image,100,100, null); 把null换成this,上面不是有代码嘛~~~嘿嘿
jarken 2007-12-25
  • 打赏
  • 举报
回复
package com.image;



import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class ImageTest extends JFrame{

/**
*
*/
private static final long serialVersionUID = 3774751825513743306L;
public void paint(Graphics g) {
super.paint(g);
Image image=Toolkit.getDefaultToolkit().getImage("d:\\1.gif");
g.drawImage(image,100,100, null);

}
public ImageTest() {
this.setTitle("my image");
this.setSize(500, 400);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new ImageTest();
}

}
我已经改了;可是必须用鼠标把界面拉一下!!
请问是什么原因?
Laughing 2007-12-24
  • 打赏
  • 举报
回复
构造方法这样看行不行:
public ImageTest() {
setTitle("my image");
setSize(500, 400);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
repaint();
}

将paint方法改为paintComponent方法:
public void paintComponent(Graphics g){
super.paintComponent(g);
Image image = Toolkit.getDefaultToolkit().getImage("d:\\1.jpg");
g.drawImage(image, 100, 100, this);
}
repaint方法会自动调用paintComponent方法;
用super.paintComponent(g);的目的是:清除面板中的内容,也就是所谓的重绘;(这也是我刚明白的,学校还没开这门课,自学的,有点不好学,不过努力就好!)

还有一个问题就是,你是在JFrame中绘制的,我不知道行不行,通常绘制图形都是在JPanel中进行绘制的,然后添加到JFrame中的内容窗格(ContentPane)中;




craky 2007-12-24
  • 打赏
  • 举报
回复
Kacisusu 2007-12-23
  • 打赏
  • 举报
回复
建议不要用paint方法绘图,用paintComponent(Graphics g)方法较好
daimojingdeyu 2007-12-23
  • 打赏
  • 举报
回复
将paint方法修改成如下的形式:
public void paint(Graphics g) {
super.paint(g);
Image image = Toolkit.getDefaultToolkit().getImage("d:\\1.jpg");
g.drawImage(image, 100, 100, this);
}

62,623

社区成员

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

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