百度了几个,没有一个能用的。我对JAVA 2d 基本上不懂,但是又要用一下来调试一个算法,所以需要别人帮我找一个或者写几行就能搞定这件事情的代码。

解决方案 »

  1.   

    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
      

  2.   

    把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();
    }
    }
    }