java运行拷贝的代码_一段简单的swing代码,复制即可直接运行

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

package fcom.hqa.fileDistillApp;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JProgressBar;

import java.awt.GridLayout;

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.List;

import java.util.regex.Pattern;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.FlowLayout;

import javax.swing.JTextField;

import javax.swing.BorderFactory;

import javax.swing.DefaultComboBoxModel;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFileChooser;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.ActionEvent;

import javax.swing.JLabel;

public class TestBuilder extends JFrame {

private static final long serialVersionUID = 1L;

int done;

private JTextField textField;

private JTextField textField_1;

private JTextField textField_2;

private JTextField textField_3;

private JFileChooser jfd;

private JButton btnNewButton;

private String fileDirec=null;

private List files=new ArrayList();

private JButton button;

private String targetFileDirec;

private String fileExtensions;

private JProgressBar prob2;

private JProgressBar prob;

private JButton btnNewButton_1;

private JButton btnNewButton_2;

private double totalFileSize=0;

private double currentFileSize=0;

private double percent=0;

private double percent2=0;

private double temSize=0;

private double temSize2=0;

private JButton jbtem;

private JPanel panel_2;

private JComboBox jcb;

@SuppressWarnings("static-access")

public TestBuilder() {

this.setTitle("欢迎使用文件提取器");

getContentPane().setLayout(new BorderLayout());

JPanel panel = new JPanel();

getContentPane().add(panel);

panel.setLayout(new GridLayout(5,1));

JPanel panel_3 = new JPanel();

this.setIconImage(new ImageIcon("images/qq.png").getImage());

panel.add(panel_3);

panel_3.setLayout(new FlowLayout(FlowLayout.LEFT,5, 30));

btnNewButton= new JButton("\u9009\u62E9\u539F\u6587\u4EF6\u76EE\u5F55");

btnNewButton.setPreferredSize(new Dimension(150, 30));

panel_3.add(btnNewButton);

textField = new JTextField();

textField.setText("\u6E90\u6587\u4EF6\u76EE\u5F55");

textField.setPreferredSize(new Dimension(360, 30));

textField.setHorizontalAlignment(JTextField.CENTER);

textField.setEditable(false);

panel_3.add(textField);

JPanel panel_1 = new JPanel();

panel_1.setLayout(new FlowLayout(FlowLayout.LEFT,5, 30));

panel.add(panel_1);

button= new JButton("\u9009\u62E9\u76EE\u6807\u6587\u4EF6\u76EE\u5F55");

button.setPreferredSize(new Dimension(150, 30));

panel_1.add(button);

textField_1 = new JTextField();

textField_1.setText("\u76EE\u6807\u6587\u4EF6\u76EE\u5F55");

textField_1.setPreferredSize(new Dimension(360, 30));

textField_1.setHorizontalAlignment(JTextField.CENTER);

textField_1.setEditable(false);

panel_1.add(textField_1);

panel_2= new JPanel();

panel.add(panel_2);

JPanel panel_4 = new JPanel();

panel_4.setBackground(Color.GREEN);

panel_1.setLayout(new FlowLayout(FlowLayout.LEFT,5, 30));

panel.add(panel_4);

panel_4.setLayout(new BorderLayout());

JPanel panel_5 = new JPanel();

JPanel panel_7 = new JPanel();

JPanel panel_8 = new JPanel();

panel_5.setLayout(new GridLayout(2, 1));

btnNewButton_1= new JButton("\u70B9\u51FB\u63D0\u53D6\u6587\u4EF6");

btnNewButton_2 = new JButton("\u6253\u5F00\u76EE\u6807\u6587\u4EF6");

btnNewButton_2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

}

});

panel_5.add(panel_7);

panel_5.add(panel_8);

panel_8.add(btnNewButton_2);

panel_7.add(btnNewButton_1);

panel_4.add(panel_5, BorderLayout.WEST);

JPanel panel_6 = new JPanel();

JPanel panel_9 = new JPanel();

panel_6.setLayout(new GridLayout(3,1));

prob = new JProgressBar();

prob.setStringPainted(true);

prob.setIndeterminate(false);

panel_6.add(prob);

textField_3 = new JTextField();

textField_3.setText("正在处理文件");

textField_3.setHorizontalAlignment(JTextField.CENTER);

textField_3.setEditable(false);

panel_6.add(textField_3);

textField_3.setColumns(10);

prob2= new JProgressBar();

prob2.setStringPainted(true);

prob2.setIndeterminate(false);

panel_6.add(prob2);

panel_4.add(panel_6, BorderLayout.CENTER);

panel_4.add(panel_9, BorderLayout.EAST);

DefaultComboBoxModel model=new DefaultComboBoxModel();

model.addElement("选择");

model.addElement("pdf");

model.addElement("jpg");

model.addElement("png");

model.addElement("avi");

model.addElement("txt");

model.addElement("gif");

model.addElement("mp4");

model.addElement("mp3");

model.addElement("doc");

model.addElement("mkv");

model.addElement("flv");

model.addElement("mov");

model.addElement("rmvb");

model.addElement("wmv");

model.addElement("xls");

model.addElement("html");

model.addElement("java");

model.addElement("zip");

model.addElement("class");

model.addElement("dll");

model.addElement("exe");

model.addElement("其他");

panel_2.setLayout(new FlowLayout(FlowLayout.LEFT,5, 30));

textField_2 = new JTextField();

textField_2.setText("请选择您要提取文件的后缀名");

textField_2.setPreferredSize(new Dimension(440, 30));

textField_2.setHorizontalAlignment(JTextField.CENTER);

textField_2.setEditable(false);

panel_2.add(textField_2);

jcb=new JComboBox();

jcb.setModel(model);

jcb.setPreferredSize(new Dimension(60, 30));

jbtem=new JButton("确定");

jbtem.setEnabled(false);

panel_2.add(jbtem);

panel_2.add(jcb);

JPanel panel_10 = new JPanel();

panel_10.setBorder (BorderFactory.createTitledBorder ("版权声明"));

panel.add(panel_10);

JLabel lblbyMooncake = new JLabel("\u672C\u8F6F\u4EF6\u5B8C\u5168\u5BF9\u5916\u5F00\u653E\uFF0C\u5927\u5BB6\u53EF\u4EE5\u968F\u4FBF\u7528\uFF01by MoonCake");

panel_10.add(lblbyMooncake);

jfd = new JFileChooser();

jfd.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

this.setSize(600, 400);

this.setResizable(false);

this.setVisible(true);

this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

button.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jfd.showDialog(new JLabel(), "选择");

textField_1.setText(jfd.getSelectedFile().toString());

targetFileDirec=textField_1.getText();

System.out.println(targetFileDirec);

}

});

btnNewButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jfd.showDialog(new JLabel(), "选择");

textField.setText(jfd.getSelectedFile().toString());

fileDirec=textField.getText();

System.out.println(fileDirec);

}

});

jcb.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

btnNewButton.setEnabled(true);

button.setEnabled(true);

jbtem.setEnabled(true);

textField_2.setEditable(false);

fileExtensions=jcb.getSelectedItem().toString();

textField_2.setText("请选择您要提取文件的后缀名("+fileExtensions+")");

System.out.println(fileExtensions);

if(fileExtensions==null || "".equals(fileExtensions)||"选择".equals(fileExtensions)){

textField_2.setText("请选择后缀名!!!");

btnNewButton_1.setEnabled(false);

btnNewButton_2.setEnabled(false);

}else{

btnNewButton_1.setEnabled(true);

btnNewButton_2.setEnabled(true);

}

if("其他".equals(fileExtensions)){

textField_2.setEditable(true);

textField_2.setText("请删除此处文字,并输入后缀名(格式:txt、mp4..)");

btnNewButton_1.setEnabled(false);

btnNewButton_2.setEnabled(false);

jbtem.setEnabled(true);

}

}

});

jbtem.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

fileExtensions=textField_2.getText();

jbtem.setEnabled(false);

if(fileExtensions.length()>5||Pattern.compile("[0-9]+?").matcher(fileExtensions).find()||Pattern.compile("[\\u4e00-\\u9fa5]+").matcher(fileExtensions).find()){

textField_2.setText("后缀名不合法,重新输入!");

btnNewButton_1.setEnabled(false);

btnNewButton_2.setEnabled(false);

btnNewButton.setEnabled(false);

button.setEnabled(false);

jbtem.setEnabled(true);

return;

}else{

btnNewButton_1.setEnabled(true);

btnNewButton_2.setEnabled(true);

btnNewButton.setEnabled(true);

button.setEnabled(true);

textField_2.setText("请继续操作!!您填写的后缀名是"+fileExtensions);

jbtem.setEnabled(false);

textField_2.setEditable(false);

}

}

});

btnNewButton_1.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

done=0;

percent=0;

percent2=0;

if(fileExtensions==null || "".equals(fileExtensions)||"选择".equals(fileExtensions)){

System.out.println(fileExtensions);

textField_2.setText("请选择后缀名!!!");

btnNewButton_1.setEnabled(false);

btnNewButton_2.setEnabled(false);

return;

}else{

btnNewButton_1.setEnabled(true);

btnNewButton_2.setEnabled(true);

jbtem.setEnabled(false);

}

if(fileDirec==null || targetFileDirec==null){

textField_2.setText("请先选择文件路径!!!");

textField_2.setEditable(false);

return;

}

new Thread(){

public void run() {

btnNewButton_1.setEnabled(false);

btnNewButton_2.setEnabled(false);

btnNewButton.setEnabled(false);

button.setEnabled(false);

jcb.setEnabled(false);

File f=new File(fileDirec);

Boolean flag=false;

int count=0;

searchAll(f);

for(File file:files){

if(file.getName().substring(file.getName().lastIndexOf(".")+1).equalsIgnoreCase(fileExtensions)){

flag=true;

count++;

}

}

if(flag){

textField_2.setText("共扫描到"+count+"个后缀名为"+fileExtensions+"的文件!正在准备提取.....");

try {

Thread.sleep(2000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}else{

textField_2.setText("共扫描到"+0+"个后缀名为"+fileExtensions+"的文件!请重新选择!");

jcb.setEnabled(true);

btnNewButton.setEnabled(true);

button.setEnabled(true);

return;

}

for( File file:files){

String fileExtensions1=file.getName().substring(file.getName().lastIndexOf(".")+1);

if(fileExtensions1.equalsIgnoreCase(fileExtensions)&&file.getName().contains(".")){

totalFileSize=file.length()+totalFileSize;

}

}

InputStream in=null;

FileOutputStream fos=null;

BufferedInputStream bis=null;

for( File file:files){

temSize2=0;

String fileExtensions1=file.getName().substring(file.getName().lastIndexOf(".")+1);

if(fileExtensions1.equalsIgnoreCase(fileExtensions)&&file.getName().contains(".")){

currentFileSize=file.length();

try {

textField_3.setText("正在提取文件"+file.getName()+".....");

System.out.println(file.getName()+"正在提取........");

in=new FileInputStream(file);

bis=new BufferedInputStream(in);

fos = new FileOutputStream(targetFileDirec +"\\"+file.getName());

byte[] b = new byte[1024];

int i=0;

while((i=bis.read(b))!= -1){

fos.write(b, 0, i);

temSize+=b.length;

temSize2+=b.length;

percent=temSize/totalFileSize;

percent2=temSize2/currentFileSize;

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}else{

continue;

}

}

textField_3.setText("感谢使用!");

textField_2.setText("全部文件提取完成!");

done=1;

btnNewButton_1.setEnabled(true);

btnNewButton_2.setEnabled(true);

btnNewButton.setEnabled(true);

jcb.setEnabled(true);

button.setEnabled(true);

}

}.start();

}

});

btnNewButton_2.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

try {

java.awt.Desktop.getDesktop().open(new File(targetFileDirec));

} catch (Exception e1) {

textField_2.setText("目标路径不存在!");

e1.printStackTrace();

}

}

});

}

public void searchAll(File f){

if(f!=null){

if(f.isDirectory()){

File[] fileArray=f.listFiles();

if(fileArray!=null){

for(int i=0;i

searchAll(fileArray[i]);

}

}

}else{

textField_2.setText(f.getAbsolutePath());

files.add(f);

}

}

}

public static void main(String[] args) {

TestBuilder t=new TestBuilder();

int i=0;

int j=0;

while(i<=100) {

i=(int)(t.percent*100);

j=(int)(t.percent2*100);

try {

t.prob.setValue(j);

t.prob2.setValue(i);

if(t.done==1){

t.prob.setValue(100);

t.prob2.setValue(100);

}

Thread.sleep(10);

} catch (Exception e) {

e.getStackTrace();

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值