1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File;
public class ReadAndSaveImage {
private Frame frame = new Frame("图片查看器");
private BufferedImage image;
private class MyCanvas extends Canvas{
@Override public void paint(Graphics g) { if (image!=null){ g.drawImage(image,0,0,image.getWidth(),image.getHeight(),null); } } }
private MyCanvas imageComponent = new MyCanvas();
public void init() throws Exception{
MenuBar mb = new MenuBar(); Menu menu = new Menu("文件"); MenuItem openItem = new MenuItem("打开"); MenuItem saveItem = new MenuItem("另存为");
openItem.addActionListener(e -> { FileDialog oDialog = new FileDialog(frame); oDialog.setVisible(true); String dir = oDialog.getDirectory(); String file = oDialog.getFile(); try { image = ImageIO.read(new File(dir,file));
imageComponent.repaint();
} catch (IOException e1) { e1.printStackTrace(); }
});
saveItem.addActionListener(e -> { FileDialog sDialog = new FileDialog(frame,"保存图片",FileDialog.SAVE); sDialog.setVisible(true); String dir = sDialog.getDirectory(); String file = sDialog.getFile();
try { ImageIO.write(image,"JPEG",new File(dir,file)); } catch (IOException e1) { e1.printStackTrace(); } });
mb.add(menu); menu.add(openItem); menu.add(saveItem);
frame.setMenuBar(mb); frame.add(imageComponent);
frame.setBounds(200,200,800,600);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); }
public static void main(String[] args) throws Exception { new ReadAndSaveImage().init(); } }
|