谁能给我一个在Java窗口中的Jpanel中显示一张图片的例子

jinhailong 2014-03-08 04:54:57
要完整的,我拷贝过来修改一下图片路径就能运行得代码,谢谢!

越简单越好,我就用一下而已,不需要完善。
...全文
1169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kristen_Ge 2014-03-08
  • 打赏
  • 举报
回复
把file路径换一下就行了,另外要引入javax.imageIo.*;包
public class Test extends JFrame{
	
	MyPanel mp=null;
	public Test(){
		mp=new MyPanel();
		this.add(mp);
		this.setSize(550, 400);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
	
	public static void main(String[] args){
		new Test();
	}
}

class MyPanel extends JPanel{
	
	Image image=null;
	
	public void paint(Graphics g){
		try {
			image=ImageIO.read(new File("H:\\aa.jpg"));
			g.drawImage(image, 0, 0, 550, 400, null);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
V非凡 2014-03-08
  • 打赏
  • 举报
回复
可能是你的图片太大啦,换张小点的试试
jinhailong 2014-03-08
  • 打赏
  • 举报
回复
public class MyJPanel extends JPanel {
    @Override
//这个方法是用来画Panel组件的
protected void paintComponent(Graphics g) {
        try {
            File fl = new File("C:\\work\\java2dImage\\out\\production\\java2dImage\\Winter.jpg");
            System.out.println(fl.length());
            BufferedImage img=ImageIO.read(fl);
            //BufferedImage img = ImageIO.read(new File(this.getClass().getResource("Winter.jpg").getPath()));
            g.drawImage(img, 0, 0, 500, 400, null);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
执行到了BufferedImage img=ImageIO.read(fl)这一句就报错 Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
jinhailong 2014-03-08
  • 打赏
  • 举报
回复
百度了几个,没有一个能用的。 我对JAVA 2d 基本上不懂,但是又要用一下来调试一个算法,所以需要别人帮我找一个或者写几行就能搞定这件事情的代码。
姜小白- 2014-03-08
  • 打赏
  • 举报
回复
百度来的更快一些吧

62,625

社区成员

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

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