JFileChooser文件选择器(Java)

效果显示:

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();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T何必当初

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值