⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myzipframe.java~3~

📁 用Java开发的压缩解压缩小工具
💻 JAVA~3~
字号:
package myzip;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;import java.util.zip.*;import javax.swing.border.*;import javax.swing.event.*;/** * <p>Title: zip</p> * <p>Description: zip files</p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: qlsc</p> * @author Wang Tao * @version 1.0 */public class MyZipFrame extends JFrame implements ListSelectionListener {  JPanel contentPane;  JMenuBar jMenuBar1 = new JMenuBar();  JMenu jMenuFile = new JMenu();  JMenuItem jMenuFileExit = new JMenuItem();  JMenu jMenuHelp = new JMenu();  JMenuItem jMenuHelpAbout = new JMenuItem();  BorderLayout borderLayout1 = new BorderLayout();  JMenuItem jMenuItemOpenSource = new JMenuItem();  JMenuItem jMenuItemOpenZip = new JMenuItem();  JPanel buttonPanel = new JPanel();  FlowLayout flowLayout1 = new FlowLayout();  JButton zipButton = new JButton();  JButton unzipButton = new JButton();  JPanel listPanel = new JPanel();  JPanel barPanel = new JPanel();  JButton openButton = new JButton();  TitledBorder titledBorder1;  JLabel messageLabel = new JLabel();  JProgressBar ProgressBar = new JProgressBar();  ImageIcon zipIcon=new ImageIcon("zip.jpg");  ImageIcon unzipIcon=new ImageIcon("unzip.jpg");  ImageIcon openIcon=new ImageIcon("open.gif");  JList playlist;  DefaultListModel plvector;  JScrollPane pljsp;  String currentDirectory,url,selectedFile;  //Construct the frame  public MyZipFrame() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  //Component initialization  private void jbInit() throws Exception  {    contentPane = (JPanel) this.getContentPane();    contentPane.setLayout(borderLayout1);    this.setSize(new Dimension(400, 300));    this.setTitle("Java Zip");    jMenuFile.setText("File");    jMenuFileExit.setText("Exit");    jMenuFileExit.addActionListener(new MyZipFrame_jMenuFileExit_ActionAdapter(this));    jMenuHelp.setText("Help");    jMenuHelpAbout.setText("About");    jMenuHelpAbout.addActionListener(new MyZipFrame_jMenuHelpAbout_ActionAdapter(this));    jMenuItemOpenSource.setText("open source");    jMenuItemOpenSource.addActionListener(new MyZipFrame_jMenuItemOpenSource_actionAdapter(this));    jMenuItemOpenZip.setText("open zip");    jMenuItemOpenZip.addActionListener(new MyZipFrame_jMenuItemOpenZip_actionAdapter(this));    buttonPanel.setBorder(BorderFactory.createRaisedBevelBorder());    buttonPanel.setToolTipText("操作板");    buttonPanel.setLayout(flowLayout1);    zipButton.setToolTipText("添加压缩文件");    zipButton.setIcon(zipIcon);System.out .println(zipIcon.getDescription()+"\n"+zipButton.getIcon().toString());    zipButton.setText(" zip ");    zipButton.addActionListener(new MyZipFrame_zipButton_actionAdapter(this));    unzipButton.setToolTipText("释放压缩文件");    unzipButton.setIcon(unzipIcon);    unzipButton.setText("unzip");    unzipButton.addActionListener(new MyZipFrame_unzipButton_actionAdapter(this));    openButton.setBorder(BorderFactory.createRaisedBevelBorder());    openButton.setToolTipText("打开文件或目录");    openButton.setActionCommand(" open ");    openButton.setBorderPainted(true);    openButton.setIcon(openIcon);    openButton.setText("open");    openButton.addActionListener(new MyZipFrame_openButton_actionAdapter(this));    messageLabel.setText("欢迎使用myZip       进度:");//考虑加入文件信息    jMenuFile.add(jMenuItemOpenSource);    jMenuFile.add(jMenuItemOpenZip);    jMenuFile.addSeparator();    jMenuFile.add(jMenuFileExit);    jMenuHelp.add(jMenuHelpAbout);    jMenuBar1.add(jMenuFile);    jMenuBar1.add(jMenuHelp);    this.setJMenuBar(jMenuBar1);    contentPane.add(buttonPanel, BorderLayout.NORTH);    buttonPanel.add(openButton, null);    buttonPanel.add(zipButton, null);    buttonPanel.add(unzipButton, null);    contentPane.add(listPanel,  BorderLayout.CENTER);    contentPane.add(barPanel,  BorderLayout.SOUTH);    barPanel.add(messageLabel, null);    barPanel.add(ProgressBar, null);    plvector=new DefaultListModel();    playlist=new JList(plvector);     playlist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);     playlist.addListSelectionListener(this);     playlist.setBackground(Color.WHITE );     playlist.setForeground(Color.BLACK);     playlist.addMouseListener(new MouseAdapter() {         /**          * if double clicked then play the selected file          * @param e MouseEvent          */         public void mouseClicked(MouseEvent e) {             if (e.getClickCount() == 2) {               //处理,文件夹->打开,文件->压缩,压缩文件->解压               if(selectedFile.endsWith(".zip")){                 //解压缩               }               else{                 //压缩               }             }         }     });     int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;     int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;     pljsp=new JScrollPane(playlist,v,h);     pljsp.setWheelScrollingEnabled(true);     listPanel.setLayout(new BorderLayout()) ;     listPanel.add(pljsp,BorderLayout.CENTER );  }  public void valueChanged(ListSelectionEvent e) {   }  //File | Exit action performed  public void jMenuFileExit_actionPerformed(ActionEvent e) {    System.exit(0);  }  //Help | About action performed  public void jMenuHelpAbout_actionPerformed(ActionEvent e) {    MyZipFrame_AboutBox dlg = new MyZipFrame_AboutBox(this);    Dimension dlgSize = dlg.getPreferredSize();    Dimension frmSize = getSize();    Point loc = getLocation();    dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);    dlg.setModal(true);    dlg.pack();    dlg.show();  }  //Overridden so we can exit when window is closed  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      jMenuFileExit_actionPerformed(null);    }  }  /** *<br>方法说明:实现文件的压缩处理 *<br>输入参数:String[] fs 压缩的文件数组 *<br>返回类型: */  public void ZipFiles(String[] fs){   try{     String fileName = fs[0];     FileOutputStream f =       new FileOutputStream(fileName+".zip");     //使用输出流检查     CheckedOutputStream cs =        new CheckedOutputStream(f,new Adler32());      //声明输出zip流      ZipOutputStream out =        new ZipOutputStream(new BufferedOutputStream(cs));      //写一个注释     // out.setComment("A test of Java Zipping");      //对多文件进行压缩      for(int i=1;i<fs.length;i++){        System.out.println("Write file "+fs[i]);        BufferedReader in =           new BufferedReader(             new FileReader(fs[i]));         out.putNextEntry(new ZipEntry(fs[i]));         int c;         while((c=in.read())!=-1)          out.write(c);        in.close();       }       //关闭输出流       out.close();       System.out.println("Checksum::"+cs.getChecksum().getValue());    }catch(Exception e){       System.err.println(e);    }  }/** *<br>方法说明:解压缩Zip文件 *<br>输入参数:String fileName 解压zip文件名 *<br>返回类型: */  public void unZipFile(String fileName){    try{       System.out.println("读取ZIP文件........");       //文件输入流       FileInputStream fi =         new FileInputStream(fileName+".zip");       //输入流检查       CheckedInputStream csi = new CheckedInputStream(fi,new Adler32());       //输入流压缩       ZipInputStream in2 =         new ZipInputStream(           new BufferedInputStream(csi));       ZipEntry ze;       System.out.println("Checksum::"+csi.getChecksum().getValue());       //解压全部文件       while((ze = in2.getNextEntry())!=null){         System.out.println("Reading file "+ze);         int x;         while((x= in2.read())!=-1)           //这里是写文件,write是以byte方式输出。           System.out.write(x);       }       in2.close();    }catch(Exception e){      System.err.println(e);    }  } /** *<br>方法说明:读取Zip文件列表 *<br>输入参数:String fileName zip文件名 *<br>返回类型:Vector 文件列表 */  public Vector listFile(String fileName){    try{       String[] aRst=null;       Vector vTemp = new Vector();       //zip文件对象       ZipFile zf = new ZipFile(fileName+".zip");       Enumeration e = zf.entries();       while(e.hasMoreElements()){         ZipEntry ze2 = (ZipEntry)e.nextElement();         System.out.println("File: "+ze2);         vTemp.addElement(ze2);       }       return  vTemp;    }catch(Exception e){      System.err.println(e);      return null;    }  }  void openDialog(){    FileDialog fd = new FileDialog (this, "打开媒体文件",  FileDialog.LOAD);     fd.setDirectory (currentDirectory);     fd.show ();     //如果用户放弃选择文件,则返回     if (fd.getFile () == null)     {       return;     }     currentDirectory = fd.getDirectory ();     selectedFile=fd.getFile() ;     url=currentDirectory+selectedFile ;  }  void jMenuItemOpenSource_actionPerformed(ActionEvent e) {    openDialog();     /////////////////进行压缩文件(url),先判断扩展名     //System.out.println(url);     //压缩   }  void jMenuItemOpenZip_actionPerformed(ActionEvent e) {    openDialog();     ///////进行解压文件(url),先判断扩展名     //解压   }  void unzipButton_actionPerformed(ActionEvent e) {    openDialog();  }  void zipButton_actionPerformed(ActionEvent e) {    openDialog();    //压缩  }  void openButton_actionPerformed(ActionEvent e) {    openDialog();    //解压  }}class MyZipFrame_jMenuFileExit_ActionAdapter implements ActionListener {  MyZipFrame adaptee;  MyZipFrame_jMenuFileExit_ActionAdapter(MyZipFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuFileExit_actionPerformed(e);  }}class MyZipFrame_jMenuHelpAbout_ActionAdapter implements ActionListener {  MyZipFrame adaptee;  MyZipFrame_jMenuHelpAbout_ActionAdapter(MyZipFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuHelpAbout_actionPerformed(e);  }}class MyZipFrame_jMenuItemOpenSource_actionAdapter implements java.awt.event.ActionListener {  MyZipFrame adaptee;  MyZipFrame_jMenuItemOpenSource_actionAdapter(MyZipFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuItemOpenSource_actionPerformed(e);  }}class MyZipFrame_jMenuItemOpenZip_actionAdapter implements java.awt.event.ActionListener {  MyZipFrame adaptee;  MyZipFrame_jMenuItemOpenZip_actionAdapter(MyZipFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jMenuItemOpenZip_actionPerformed(e);  }}class MyZipFrame_unzipButton_actionAdapter implements java.awt.event.ActionListener {  MyZipFrame adaptee;  MyZipFrame_unzipButton_actionAdapter(MyZipFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.unzipButton_actionPerformed(e);  }}class MyZipFrame_zipButton_actionAdapter implements java.awt.event.ActionListener {  MyZipFrame adaptee;  MyZipFrame_zipButton_actionAdapter(MyZipFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.zipButton_actionPerformed(e);  }}class MyZipFrame_openButton_actionAdapter implements java.awt.event.ActionListener {  MyZipFrame adaptee;  MyZipFrame_openButton_actionAdapter(MyZipFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.openButton_actionPerformed(e);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -