java 生成 文件 md5_JAVA版文件MD5生成器

/** Main.java

*

* Created on 2007年11月8日, 上午9:15*/packagetest1;importjava.awt.datatransfer.DataFlavor;importjava.awt.datatransfer.Transferable;importjava.awt.datatransfer.UnsupportedFlavorException;importjava.awt.dnd.DnDConstants;importjava.awt.dnd.DropTarget;importjava.awt.dnd.DropTargetDragEvent;importjava.awt.dnd.DropTargetDropEvent;importjava.awt.dnd.DropTargetEvent;importjava.awt.dnd.DropTargetListener;importjava.io.File;importjava.io.IOException;importjava.text.SimpleDateFormat;importjava.util.Date;importjavax.swing.JFileChooser;importjavax.swing.UIManager;/***

*@authorhadeslee*/publicclassMainextendsjavax.swing.JFrameimplementsDropTargetListener {privateJFileChooser jfc;privateFile toMd5;privateDropTarget dt;/**Creates new form Main*/publicMain() {try{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

}catch(Exception exe) {

exe.printStackTrace();

}

initComponents();

initOther();this.setLocationRelativeTo(null);

}privatevoidinitOther() {

dt=newDropTarget(jTextArea1, DnDConstants.ACTION_COPY_OR_MOVE,this);

}/**This method is called from within the constructor to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this method is

* always regenerated by the Form Editor.*///privatevoidinitComponents() {

jLabel1=newjavax.swing.JLabel();

jTextField1=newjavax.swing.JTextField();

jButton1=newjavax.swing.JButton();

jScrollPane1=newjavax.swing.JScrollPane();

jTextArea1=newjavax.swing.JTextArea();

jButton2=newjavax.swing.JButton();

jButton3=newjavax.swing.JButton();

jpb=newjavax.swing.JProgressBar();

jLabel2=newjavax.swing.JLabel();

jTextField2=newjavax.swing.JTextField();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

setTitle("MD5生成");

setResizable(false);

jLabel1.setText("文件路径:");

jTextField1.setEditable(false);

jButton1.setText("浏览

9b8a8a44dd1c74ae49c20a7cd451974e.png");

jButton1.addActionListener(newjava.awt.event.ActionListener() {publicvoidactionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

jScrollPane1.setBorder(javax.swing.BorderFactory.createTitledBorder("文件信息"));

jTextArea1.setColumns(20);

jTextArea1.setRows(5);

jScrollPane1.setViewportView(jTextArea1);

jButton2.setText("生成");

jButton2.addActionListener(newjava.awt.event.ActionListener() {publicvoidactionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt);

}

});

jButton3.setText("退出");

jButton3.addActionListener(newjava.awt.event.ActionListener() {publicvoidactionPerformed(java.awt.event.ActionEvent evt) {

jButton3ActionPerformed(evt);

}

});

jLabel2.setText("MD5值:");

jTextField2.setEditable(false);

javax.swing.GroupLayout layout=newjavax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)

.addGroup(layout.createSequentialGroup()

.addComponent(jButton2)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jButton3)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jpb, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel2)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField2))

.addComponent(jScrollPane1)

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE,246, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jButton1)))

.addContainerGap(16, Short.MAX_VALUE))

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel1)

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jButton1))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,182, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel2)

.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,11, Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)

.addComponent(jButton3)

.addComponent(jpb, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addContainerGap())

.addGroup(layout.createSequentialGroup()

.addGap(267,267,267)

.addComponent(jButton2)

.addGap(10,10,10))

);

pack();

}//privatevoidjButton1ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:if(jfc==null) {

jfc=newJFileChooser();

jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);

}if(jfc.showOpenDialog(this)==JFileChooser.APPROVE_OPTION) {

toMd5=jfc.getSelectedFile();

jTextField1.setText(toMd5.toString());

showFileInfo();

}

}privatevoidjButton2ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:jButton2.setEnabled(false);newThread(){publicvoidrun(){

String s=Util.getMD5(toMd5, jpb);

jTextField2.setText(s);

jButton2.setEnabled(true);

}

}.start();

}privatevoidjButton3ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:System.exit(0);

}privatevoidshowFileInfo() {if(toMd5!=null) {

SimpleDateFormat sdf=newSimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

File f=toMd5;

StringBuilder sb=newStringBuilder();

sb.append("文件名称:").append(f.getName()).append('\n');

sb.append("文件大小:").append(f.length()).append('\n');

sb.append("文件最后修改日期:").append(sdf.format(newDate(f.lastModified()))).append("\n");

sb.append("文件属性:").append(f.canWrite()?"读写":"只读").append('\n');

jTextArea1.setText(sb.toString());

}

}/***@paramargs the command line arguments*/publicstaticvoidmain(String args[]) {

java.awt.EventQueue.invokeLater(newRunnable() {publicvoidrun() {newMain().setVisible(true);

}

});

}//Variables declaration - do not modifyprivatejavax.swing.JButton jButton1;privatejavax.swing.JButton jButton2;privatejavax.swing.JButton jButton3;privatejavax.swing.JLabel jLabel1;privatejavax.swing.JLabel jLabel2;privatejavax.swing.JScrollPane jScrollPane1;privatejavax.swing.JTextArea jTextArea1;privatejavax.swing.JTextField jTextField1;privatejavax.swing.JTextField jTextField2;privatejavax.swing.JProgressBar jpb;//End of variables declarationpublicvoiddragEnter(DropTargetDragEvent dtde) {

dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);

}publicvoiddragOver(DropTargetDragEvent dtde) {

}publicvoiddropActionChanged(DropTargetDragEvent dtde) {

}publicvoiddragExit(DropTargetEvent dte) {

}publicvoiddrop(DropTargetDropEvent e) {try{if(e.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {

Transferable tr=e.getTransferable();

e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);

@SuppressWarnings("unchecked")

java.util.Listlist=(java.util.List) tr.getTransferData(DataFlavor.javaFileListFlavor);if(list.size()==1) {

File f=list.get(0);if(f.isFile()) {

toMd5=list.get(0);this.showFileInfo();

jTextField1.setText(toMd5.toString());

}

}

e.dropComplete(true);

}else{

e.rejectDrop();

}

}catch( IOException io) {

io.printStackTrace();

e.rejectDrop();

}catch( UnsupportedFlavorException ufe) {

ufe.printStackTrace();

e.rejectDrop();

}

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值