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

📄 myzipframe.java~10~

📁 用Java开发的压缩解压缩小工具
💻 JAVA~10~
📖 第 1 页 / 共 2 页
字号:
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.*;
import javax.swing.filechooser.FileFilter;
/**
 * <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 jMenuFileOpenFile = new JMenuItem();
   JMenuItem jMenuFileOpenDir = new JMenuItem();
  JMenuItem jMenuFileOpenZip = 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.jpg");
  JList playlist;
  DefaultListModel plvector;
  JScrollPane pljsp;
  String currentDirectory,url,selectedFile,zipname;
  String[] files,record=new  String[100];


  //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("文件");
    jMenuFileExit.setText("退出");
    jMenuFileExit.addActionListener(new MyZipFrame_jMenuFileExit_ActionAdapter(this));
    jMenuHelp.setText("帮助");
    jMenuHelpAbout.setText("关于");
    jMenuHelpAbout.addActionListener(new MyZipFrame_jMenuHelpAbout_ActionAdapter(this));
    jMenuFileOpenFile.setText("压缩文件");
    jMenuFileOpenFile.addActionListener(new MyZipFrame_jMenuFileOpenFile_actionAdapter(this));
    jMenuFileOpenZip.setText("打开压缩文件");
    jMenuFileOpenZip.addActionListener(new MyZipFrame_jMenuFileOpenZip_actionAdapter(this));
    buttonPanel.setBorder(BorderFactory.createRaisedBevelBorder());
    buttonPanel.setToolTipText("操作板");
    buttonPanel.setLayout(flowLayout1);
    zipButton.setBackground(Color.lightGray);
    zipButton.setMaximumSize(new Dimension(67, 67));
    zipButton.setMinimumSize(new Dimension(67, 67));
    zipButton.setPreferredSize(new Dimension(62, 63));
    zipButton.setToolTipText("添加压缩文件");
    zipButton.setIcon(zipIcon);System.out .println(zipIcon.getDescription()+"\n"+zipButton.getIcon().toString());
    zipButton.setText("");
    zipButton.addActionListener(new MyZipFrame_zipButton_actionAdapter(this));
    unzipButton.setBackground(Color.lightGray);
    unzipButton.setPreferredSize(new Dimension(65, 63));
    unzipButton.setToolTipText("释放压缩文件");
    unzipButton.setIcon(unzipIcon);
    unzipButton.setText("");
    unzipButton.addActionListener(new MyZipFrame_unzipButton_actionAdapter(this));
    openButton.setBorder(BorderFactory.createRaisedBevelBorder());
    openButton.setToolTipText("打开文件或目录");
    openButton.setActionCommand(" open ");
    openButton.setBorderPainted(true);
    openButton.setBackground(Color.lightGray);
    openButton.setSize(100,100);
    openButton.setIcon(openIcon);
    openButton.setText("");
    openButton.addActionListener(new MyZipFrame_openButton_actionAdapter(this));
    messageLabel.setText("欢迎使用myZip       进度:");//考虑加入文件信息
    jMenuFileOpenDir.setText("压缩目录");
    jMenuFileOpenDir.addActionListener(new MyZipFrame_jMenuFileOpenDir_actionAdapter(this));
    jMenuFile.add(jMenuFileOpenFile);
    jMenuFile.add(jMenuFileOpenDir);
    jMenuFile.add(jMenuFileOpenZip);
    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);
    }
  }
  //将当前zip文件中的子文件显示在列表中
  public void scanZipFile()
  {
    plvector.removeAllElements();
    try
    {
      ZipInputStream zin=new ZipInputStream(new
         FileInputStream(zipname));
      ZipEntry entry;
      while ((entry = zin.getNextEntry()) !=null)
      {
        plvector.addElement(entry.getName());
        zin.closeEntry();

      }
      zin.close();
    }
    catch (IOException e)
    {
      e.printStackTrace() ;
    }
  }

  public void loadZipFile(String name)
 {
   try
   {
     ZipInputStream zin =new ZipInputStream(new
        FileInputStream(zipname));
     ZipEntry entry;
     while ((entry = zin.getNextEntry()) !=null)
     {
       if (entry.getName().equals(name))
       {
         BufferedReader in =new BufferedReader(new
            InputStreamReader(zin));
         //DataOutputStream out
         String line;
         while ((line = in.readLine())!=null)
         {

         }
       }
       zin.closeEntry();
     }
     zin.close();
   }
   catch(IOException e)
   {
     e.printStackTrace() ;
   }
 }

  /**
 *<br>方法说明:实现文件的压缩处理
 *<br>输入参数:压缩的文件数组
 *<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&&fs[i]!=null;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());

⌨️ 快捷键说明

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