在JPanel上drawImage一副图片为什么不能马上显示出来啊?

彭辛乾 2011-08-14 09:56:01
如下面随便写的一段代码,drawline时能够立马显示,但drawImage时要改变一下边框的大小图片才能显示(大图片和小图片都一样),怎样让JFrame调用setVisible后图片能够马上显示。

public class Server {
public static void main(String[] args){
JFrame jf = new JFrame();
JPanel jp = new mypanel();
jf.setSize(800 , 800);
jf.setLayout(new BorderLayout());
jf.getContentPane().add(jp);
jf.setVisible(true);

}
}

class mypanel extends JPanel{
Image img;
mypanel(){
setBackground(Color.white);
img = Toolkit.getDefaultToolkit().getImage("001.jpg");
}
public void paintComponent(Graphics g){
super.paintComponent(g);
//g.setColor(Color.green);
g.drawLine(20, 20, 400, 400);
g.drawImage(img, 0, 0, null);
}
}
...全文
162 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gloomyfish 2011-08-14
  • 打赏
  • 举报
回复
没这么复杂,你的原因在于没有设定大小而已
记得一定要把图像的大小设置到drawimage(image, image.getWidth(null), image.getHeight(null),null);
即可显示正确。
huntor 2011-08-14
  • 打赏
  • 举报
回复
getImage 印象中需要 使用 MediaTracker 确认是否载入完成。
hitzsf 2011-08-14
  • 打赏
  • 举报
回复
使用ImageIO.read() 方法
img = ImageIO.read(new File("001.jpg"));

62,615

社区成员

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

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