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