效果显示:
1.点击文件的打开选项后
?2.找到自己电脑中的图片,窗口小了可以自己拉大显示
?3.再点击文件的另存为,将此图片存到指定地点并起名,最后点击保存
?4.找到保存图片的路径,可以看到刚才保存的图片并且可以打开显示
?
代码实现:?
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
//文件选择器
public class JFileChooserDemo {
JFrame frame = new JFrame("测试文件选择器");
//菜单条
JMenuBar jmb = new JMenuBar();
//创建菜单
JMenu menu = new JMenu("文件");
//菜单项
JMenuItem open = new JMenuItem(new AbstractAction("打开") {
@Override
public void actionPerformed(ActionEvent e) {
//显示文件选择器
JFileChooser filechooser = new JFileChooser(".");//当前路径文件
filechooser.showOpenDialog(frame);//打开文件对话框,父窗口为JFrame
//获取选择的文件
File file = filechooser.getSelectedFile();
//显示文件
try {
image = ImageIO.read(file);
drawArea.repaint();//重绘画面
} catch (IOException ex) {
ex.printStackTrace();
}
}
});
JMenuItem save = new JMenuItem(new AbstractAction("另存为") {
@Override
public void actionPerformed(ActionEvent e) {
//显示文件选择器
JFileChooser filechooser = new JFileChooser(".");//当前路径文件
filechooser.showSaveDialog(frame);//保存文件,父窗口为JFrame
//获取选择的保存文件路径
File file = filechooser.getSelectedFile();
//保存文件
try {
ImageIO.write(image,"jpeg",file);
} catch (IOException ex) {
ex.printStackTrace();
}
}
});
BufferedImage image;
//画布
private class Mycanvas extends JPanel{
@Override
public void paint(Graphics g) {
g.drawImage(image,0,0,null);
}
}
Mycanvas drawArea = new Mycanvas();
//组装视图
public void init(){
menu.add(open);
menu.add(save);
jmb.add(menu);
frame.setJMenuBar(jmb);
drawArea.setPreferredSize(new Dimension(740,500));//画布大小
frame.add(drawArea);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JFileChooserDemo().init();
}
}
|