package com.one.practice;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ReadAndSaveImage {
private Frame f = new Frame("图片查看器");
MenuBar menuBar = new MenuBar();
Menu menu = new Menu("文件");
MenuItem open = new MenuItem("打开图片");
MenuItem save = new MenuItem("保存图片");
//声明BufferedImage对象,记录本地存取到内存中的图片
BufferedImage image;
private class MyCanvas extends Canvas {
@Override
public void paint(Graphics g) {
g.drawImage(image, 0, 0, null);
}
}
MyCanvas darwArea = new MyCanvas();
public void init() throws Exception {
open.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//打开一个文件对话框
FileDialog fileDialog = new FileDialog(f, "打开图片", FileDialog.LOAD);
fileDialog.setVisible(true);
//获取用户选择的图片路径以及名称
String dir = fileDialog.getDirectory();
String fileName = fileDialog.getFile();
try {
image = ImageIO.read(new File(dir, fileName));
darwArea.repaint();
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
});
save.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//展示一个文件对话框
FileDialog fileDialog = new FileDialog(f, "保存图片", FileDialog.SAVE);
fileDialog.setVisible(true);
//获取用户设置的保存路径以及名称
String dir = fileDialog.getDirectory();
String fileName = fileDialog.getFile();
try {
ImageIO.write(image, "JPG", new File(dir, fileName));
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
});
menu.add(open);
menu.add(save);
menuBar.add(menu);
f.setMenuBar(menuBar);
f.add(darwArea);
f.setBounds(200, 200, 740, 508);
f.setVisible(true);
f.pack();
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) throws Exception {
new ReadAndSaveImage().init();
}
}
图片查看器
最新推荐文章于 2024-10-09 11:13:12 发布