package com.lushunde.zip.gui;
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;
    import com.lushunde.zip.algorithm.Base64Tracsfer;
    public class GUI2 {
    public static void init() {
    JFrame jFrame = new JFrame(“ZIP转换”);
    Container c = jFrame.getContentPane();
    jFrame.setSize(600, 400); // 设置大小
    jFrame.setLocationRelativeTo(null); // 设置 位置屏幕居中
    c.setLayout(null);
    // 设置窗体的位置及大小
    // jFrame.setBounds(400, 300, 600, 400);
    // 设置一层相当于桌布的东西
    // c.setLayout(new BorderLayout());// 布局管理器
    // 设置按下右上角X号后关闭
    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // 初始化—往窗体里放其他控件
    JTextField srctext = new JTextField();
    srctext.setBounds(180, 20, 380, 20);
    // 选择目标 文件或者目录
    JTextField tagtext = new JTextField();
    tagtext.setBounds(180, 50, 380, 20);
    JButton srcbutton = new JButton(“请选择源文件…”); // 按钮,单击响应事件,打开文件选择器
    JFileChooser srcfilechooser = new JFileChooser();
    srcfilechooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
    // 创建动作监听者者
    srcbutton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    ZipFileFilter zipFileFilter = new ZipFileFilter();
    srcfilechooser.setFileFilter(zipFileFilter);
    // filechooser.addChoosableFileFilter(zipFileFilter); // 选择中增加
    int result = srcfilechooser.showOpenDialog(null);
    // /JFileChooser.APPROVE_OPTION是个整型常量,代表0。就是说当返回0的值我们才执行相关操作,否则什么也不做。
    if (result == JFileChooser.APPROVE_OPTION) {
    File selectedFile = srcfilechooser.getSelectedFile();
    if (selectedFile != null) {
    boolean isfile = selectedFile.isFile();
    if (isfile) {
    String absolutePath = selectedFile.getPath();
    srctext.setText(absolutePath);
    String defultsavepath = absolutePath.substring(0, absolutePath.length() - 3) + “txt”;
    tagtext.setText(defultsavepath);
    } else {
    JOptionPane.showMessageDialog(null, “必须选择ZIP文件”, “操作错误”, JOptionPane.WARNING_MESSAGE);
    }
    }
    }
    }
    });
    srcbutton.setBounds(40, 20, 130, 20);
    c.add(srcbutton); // 面板添加按钮
    c.add(srctext); // 面板添加按钮
    JButton tagbutton = new JButton(“请选择保存目录…”); // 按钮,单击响应事件,打开文件选择器
    JFileChooser tagfilechooser = new JFileChooser();
    tagfilechooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    // 创建动作监听者者
    tagbutton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    DirectoryFileFilter directoryFileFilter = new DirectoryFileFilter();
    tagfilechooser.setFileFilter(directoryFileFilter);
    // filechooser.addChoosableFileFilter(zipFileFilter); // 选择中增加
    int result = tagfilechooser.showOpenDialog(null);
    // /
    JFileChooser.APPROVE_OPTION是个整型常量,代表0。就是说当返回0的值我们才执行相关操作,否则什么也不做。
    if (result == JFileChooser.APPROVE_OPTION) {
    File selectedFile = tagfilechooser.getSelectedFile();
    if (selectedFile != null) {
    String absolutePath = selectedFile.getPath();
    tagtext.setText(absolutePath);
    }
    }
    }
    });
    tagbutton.setBounds(40, 50, 130, 20);
    c.add(tagbutton); // 面板添加按钮
    c.add(tagtext); // 面板添加按钮
    JButton transferbutton = new JButton(“转换”);
    transferbutton.setSize(120, 20);
    transferbutton.setLocation(400, 300);
    // 创建动作监听者者
    transferbutton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    String src = srctext.getText();
    String tag = tagtext.getText();
    if (src == null || !src.endsWith(“.zip”)) {
    JOptionPane.showMessageDialog(null, “没有找到源文件”, “错误提示”, JOptionPane.ERROR_MESSAGE);
    }

    File srcfile = new File(src);
    boolean isfile = srcfile.isFile();
    boolean canRead = srcfile.canRead();
    if(!isfile || !canRead){
    JOptionPane.showMessageDialog(null, “没有找到源文件”, “错误提示”, JOptionPane.ERROR_MESSAGE);
    }

    File tagfile = new File(tag);
    if(tagfile.isDirectory()){
    String name = srcfile.getName();
    String defultsaveName = tag + “/“ + name.substring(0, name.length() - 3) + “txt”;
    tag = defultsaveName;
    }

    // 执行
    Base64Tracsfer.srcFileEncoderTxt(src, tag);

    JOptionPane.showMessageDialog(null, “转换完成”, “错误提示”, JOptionPane.INFORMATION_MESSAGE);
    }
    });
    c.add(transferbutton); // 面板添加按钮
    // 设置窗体可见
    jFrame.setVisible(true);
    }
    // 测试
    public static void main(String[] args) {
    init();
    }
    }

    GUI3
    package com.lushunde.zip.gui;
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTabbedPane;
    import javax.swing.JTextField;
    import com.lushunde.zip.algorithm.Base64Tracsfer;
    public class GUI3 {
    public static void init() {
    JFrame jFrame = new JFrame(“ZIP转换”);
    Container root = jFrame.getContentPane();
    jFrame.setSize(600, 400); // 设置大小
    jFrame.setLocationRelativeTo(null); // 设置 位置屏幕居中
    JTabbedPane jTabbedpane = new JTabbedPane();// 存放选项卡的组件
    JPanel c = new JPanel();
    c.setLayout(null);
    jTabbedpane.addTab(“Z转换T”, null, c, “first”);
    JPanel c2 = new JPanel();
    c2.setLayout(null);
    jTabbedpane.addTab(“T转换Z”, null, c2, “second”);

    root.add(jTabbedpane);

    // 设置窗体的位置及大小
    // jFrame.setBounds(400, 300, 600, 400);
    // 设置一层相当于桌布的东西
    // c.setLayout(new BorderLayout());// 布局管理器
    // 设置按下右上角X号后关闭
    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // 初始化—往窗体里放其他控件
    JTextField srctext = new JTextField();
    srctext.setBounds(180, 20, 380, 20);
    // 选择目标 文件或者目录
    JTextField tagtext = new JTextField();
    tagtext.setBounds(180, 50, 380, 20);
    JButton srcbutton = new JButton(“请选择源文件…”); // 按钮,单击响应事件,打开文件选择器
    JFileChooser srcfilechooser = new JFileChooser();
    srcfilechooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
    // 创建动作监听者者
    srcbutton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    ZipFileFilter zipFileFilter = new ZipFileFilter();
    srcfilechooser.setFileFilter(zipFileFilter);
    // filechooser.addChoosableFileFilter(zipFileFilter); // 选择中增加
    int result = srcfilechooser.showOpenDialog(null);
    // /JFileChooser.APPROVE_OPTION是个整型常量,代表0。就是说当返回0的值我们才执行相关操作,否则什么也不做。
    if (result == JFileChooser.APPROVE_OPTION) {
    File selectedFile = srcfilechooser.getSelectedFile();
    if (selectedFile != null) {
    boolean isfile = selectedFile.isFile();
    if (isfile) {
    String absolutePath = selectedFile.getPath();
    srctext.setText(absolutePath);
    String defultsavepath = absolutePath.substring(0, absolutePath.length() - 3) + “txt”;
    tagtext.setText(defultsavepath);
    } else {
    JOptionPane.showMessageDialog(null, “必须选择ZIP文件”, “操作错误”, JOptionPane.WARNING_MESSAGE);
    return ;
    }
    }
    }
    }
    });
    srcbutton.setBounds(40, 20, 130, 20);
    c.add(srcbutton); // 面板添加按钮
    c.add(srctext); // 面板添加按钮
    JButton tagbutton = new JButton(“请选择保存目录…”); // 按钮,单击响应事件,打开文件选择器
    JFileChooser tagfilechooser = new JFileChooser();
    tagfilechooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    // 创建动作监听者者
    tagbutton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    DirectoryFileFilter directoryFileFilter = new DirectoryFileFilter();
    tagfilechooser.setFileFilter(directoryFileFilter);
    // filechooser.addChoosableFileFilter(zipFileFilter); // 选择中增加
    int result = tagfilechooser.showOpenDialog(null);
    // /
    JFileChooser.APPROVE_OPTION是个整型常量,代表0。就是说当返回0的值我们才执行相关操作,否则什么也不做。
    if (result == JFileChooser.APPROVE_OPTION) {
    File selectedFile = tagfilechooser.getSelectedFile();
    if (selectedFile != null) {
    String absolutePath = selectedFile.getPath();
    tagtext.setText(absolutePath);
    }
    }
    }
    });
    tagbutton.setBounds(40, 50, 130, 20);
    c.add(tagbutton); // 面板添加按钮
    c.add(tagtext); // 面板添加按钮
    JButton transferbutton = new JButton(“转换”);
    transferbutton.setSize(120, 20);
    transferbutton.setLocation(400, 300);
    // 创建动作监听者者
    transferbutton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    String src = srctext.getText();
    String tag = tagtext.getText();
    if (src == null || !src.endsWith(“.zip”)) {
    JOptionPane.showMessageDialog(null, “没有找到源文件”, “错误提示”, JOptionPane.ERROR_MESSAGE);
    return ;
    }

    File srcfile = new File(src);
    boolean isfile = srcfile.isFile();
    boolean canRead = srcfile.canRead();
    if(!isfile || !canRead){
    JOptionPane.showMessageDialog(null, “没有找到源文件”, “错误提示”, JOptionPane.ERROR_MESSAGE);
    return ;
    }

    File tagfile = new File(tag);
    if(tagfile.isDirectory()){
    String name = srcfile.getName();
    String defultsaveName = tag + “/“ + name.substring(0, name.length() - 3) + “txt”;
    tag = defultsaveName;
    return ;
    }

    // 执行
    Base64Tracsfer.srcFileEncoderTxt(src, tag);

    JOptionPane.showMessageDialog(null, “转换完成”, “错误提示”, JOptionPane.INFORMATION_MESSAGE);
    }
    });
    c.add(transferbutton); // 面板添加按钮
    // 设置窗体可见
    jFrame.setVisible(true);
    }
    // 测试
    public static void main(String[] args) {
    init();
    }
    }