budd/src/main/java/me/ehlxr/pack/PackView.java

261 lines
8.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package me.ehlxr.pack;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileSystemView;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@SuppressWarnings("serial")
public class PackView extends JFrame {
private final JButton jb = new JButton();
private final JButton jb1 = new JButton();
private final JButton jb2 = new JButton();
private final JLabel jl0 = new JLabel();
private final JButton cancel = new JButton("退出");
private final JTextPane jText1 = new JTextPane();
private final JTextPane jText2 = new JTextPane();
public JTextArea jArea = new JTextArea();
public JScrollPane p = new JScrollPane(this.jArea);
private String inputPath = "D:\\wins-dsp";
private String outputPath = "C:\\Users\\ehlxr\\Desktop";
private PackView() {
setTitle("打包工具By:Henry");
setBounds(400, 400, 500, 300);
setLayout(null);
setResizable(false);
this.jb.setText("打包清单");
this.jb1.setText("打包根目录");
this.jb2.setText("输出目录");
this.jText1.setText(this.inputPath);
this.jText2.setText(this.outputPath);
this.jb.addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent e) {
if (PackView.this.packs()) {
PackView.this.jl0.setText("成功打包!");
PackView.this.jb.setText("...继续");
} else {
PackView.this.jl0.setText("打包失败!");
}
}
public void mousePressed(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
}
});
this.jb1.addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent e) {
PackView.this.choosePath(1);
PackView.this.jText1.setText(PackView.this.inputPath);
}
public void mousePressed(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
}
});
this.jb2.addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent e) {
PackView.this.choosePath(2);
PackView.this.jText2.setText(PackView.this.outputPath);
}
public void mousePressed(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
}
});
this.cancel.addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent e) {
PackView.this.close();
}
public void mousePressed(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
}
});
this.jb1.setBounds(10, 5, 100, 30);
this.jText1.setBounds(120, 5, 250, 30);
this.jb2.setBounds(10, 40, 100, 30);
this.jText2.setBounds(120, 40, 250, 30);
this.jb.setBounds(10, 100, 100, 30);
this.cancel.setBounds(120, 100, 100, 30);
this.jl0.setBounds(230, 100, 100, 30);
this.jArea.setLineWrap(true);
this.jArea.setForeground(Color.red);
this.jArea.setEditable(false);
this.p.setBounds(10, 130, 480, 130);
this.p.setVerticalScrollBarPolicy(22);
this.p.setHorizontalScrollBarPolicy(32);
add(this.jb1);
add(this.jText1);
add(this.jb2);
add(this.jText2);
add(this.jb);
add(this.cancel);
add(this.jl0);
add(this.p);
setVisible(true);
setDefaultCloseOperation(3);
}
public static void main(String[] args) {
new PackView();
}
private List<String> chooseFile(int chooseMode) {
try {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setMultiSelectionEnabled(true);
fileChooser.setDialogTitle("文件打包");
fileChooser.setDragEnabled(true);
fileChooser.setAutoscrolls(true);
fileChooser.setFileFilter(new FileFilter() {
public boolean accept(File f) {
if (f.isDirectory()) {
return true;
}
return (f.getName().endsWith(".TXT")) || (f.getName().endsWith(".txt"));
}
public String getDescription() {
return ".txt";
}
});
fileChooser.setCurrentDirectory(FileSystemView.getFileSystemView().getHomeDirectory());
fileChooser.setOpaque(true);
fileChooser.setDoubleBuffered(true);
int returnVal = -1;
switch (chooseMode) {
case 1:
returnVal = fileChooser.showOpenDialog(this);
break;
case 2:
returnVal = fileChooser.showSaveDialog(this);
}
File[] fileName;
if (returnVal == 0) {
fileName = fileChooser.getSelectedFiles();
} else {
fileName = null;
}
List<String> list = new ArrayList<String>();
System.out.println("打包文件路径列表:");
String filePath = null;
for (int i = 0; i < fileName.length; i++) {
filePath = fileName[i].getAbsolutePath();
if (filePath.toUpperCase().endsWith("TXT")) {
list.add(filePath);
System.out.println("序号 " + i + " " + filePath);
} else {
System.out.println("序号 " + i + " " + filePath + " >>该文件不能作为打包文件! ");
}
}
return list;
} catch (Exception e) {
}
return null;
}
private boolean choosePath(int id) {
try {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setMultiSelectionEnabled(true);
switch (id) {
case 1:
fileChooser.setDialogTitle("打包文件根目录");
fileChooser.setCurrentDirectory(new File(this.inputPath));
break;
case 2:
fileChooser.setDialogTitle("输出文件目录");
fileChooser.setCurrentDirectory(new File(this.outputPath));
}
fileChooser.setDragEnabled(true);
fileChooser.setAutoscrolls(true);
fileChooser.setAcceptAllFileFilterUsed(true);
fileChooser.setOpaque(true);
fileChooser.setDoubleBuffered(true);
fileChooser.setFileSelectionMode(1);
fileChooser.showOpenDialog(this);
switch (id) {
case 1:
this.inputPath = fileChooser.getSelectedFile().toString();
break;
case 2:
this.outputPath = fileChooser.getSelectedFile().toString();
}
return true;
} catch (Exception e) {
}
return false;
}
private void close() {
dispose();
}
private boolean packs() {
boolean flag = true;
List<String> fileName = chooseFile(1);
if ((fileName == null) || (fileName.size() <= 0)) {
System.out.println("打包原始文件没有找到");
flag = false;
} else {
for (int i = 0; i < fileName.size(); i++) {
try {
flag = FileUtil.becomePackage(fileName.get(i), this.inputPath, this.outputPath, this);
} catch (Exception e) {
return false;
}
}
}
return flag;
}
}