Java AWT ImageIo问题


import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class IImageIO {
    //创建BufferedImage对象
    BufferedImage image;

    class DrawArea extends Canvas {
        @Override
        public void paint(Graphics g) {
            g.drawImage(image, 0, 0, null);
        }
    }

    DrawArea drawArea = new DrawArea();

    public void init() {
        Frame frame = new Frame("imageIO的练习");
        //创建上方菜单并将菜单项放在菜单条中
        MenuBar menuBar = new MenuBar();
        MenuItem open = new MenuItem("打开", new MenuShortcut(KeyEvent.VK_Y, false));
        MenuItem save = new MenuItem("保存", new MenuShortcut(KeyEvent.VK_Y, true));
        Menu menu = new Menu("文件");
        //绑定菜单项功能


        open.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                FileDialog fileDialog = new FileDialog(frame, "打开图片 ", FileDialog.LOAD);
                fileDialog.setVisible(true);

                String directory = fileDialog.getDirectory();
                String file = fileDialog.getFile();
                try {
                    image = ImageIO.read(new File(directory, file));
                    drawArea.repaint();

                } catch (IOException ex) {
                    ex.printStackTrace();

                }

            }
        });
      /*  Button button = new Button("绘制圆形");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                drawArea.repaint();
            }
        });
        frame.add(button,BorderLayout.SOUTH);*/
        save.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                FileDialog fileDialog = new FileDialog(frame, "保存图片", FileDialog.SAVE);
                fileDialog.setVisible(true);
                String directory = fileDialog.getDirectory();
                String file = fileDialog.getFile();
                try {
                    ImageIO.write(image, "JPEG", new File(directory, file));
                } catch (IOException ex) {
                    ex.printStackTrace();

                }
            }


        });
        menu.add(open);
        menu.add(save);
        menuBar.add(menu);
        frame.setMenuBar(menuBar);

        frame.add(drawArea);
        //frame.add(dialog);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        //组装
        frame.setBounds(200, 200, 740, 508);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        new IImageIO().init();
    }
}

为什么我ImageIO打开图片没有重绘