使用awt图形化编程实现对于图片的打开与保存操作
首先是图形化界面:
菜单的操作中有两个选项:读取与保存
图片打开后可以显示在中间的画布上,保存选项可以保存在其他的地方
下面是保存在桌面上的效果
入口enter类:
package guidemo2;
public class Enter {
public static void main(String[] args) {
Demo demo = new Demo();
demo.init();
}
}
package guidemo2;
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 Demo {
private int width = 800;
private int height = 700;
Frame frame = new Frame();
MenuBar menuBar = new MenuBar();
Menu menu = new Menu("操作");
MenuItem read = new MenuItem("读取");
MenuItem save = new MenuItem("保存");
BufferedImage bufferedImage;
private class ShowImg extends Canvas {
@Override
public void paint(Graphics g) {
g.drawImage(bufferedImage,0,0,null);
}
}
public void init(){
ShowImg img = new ShowImg();
frame.setTitle("图片查看器");
Toolkit tool = Toolkit.getDefaultToolkit();
Dimension dimension = tool.getScreenSize();
int scnWidth = dimension.width;
int scnHeight = dimension.height;
frame.setBounds((scnWidth-width)/2,(scnHeight-height)/2,width,height);
read.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 {
bufferedImage = ImageIO.read(new File(directory+file));
img.repaint();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
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(bufferedImage,"JPG",new File(directory,file));
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
menu.add(read);
menu.add(save);
menuBar.add(menu);
frame.setMenuBar(menuBar);
frame.add(img);
img.setPreferredSize(new Dimension(800,700));
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
版权声明:本文为qq_61326476原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。