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

📄 myzip.java

📁 Myzip a soft ware by java which make a file to zip or jar
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
// header - edit "Data/yourJavaHeader" to customize
// contents - edit "EventHandlers/Java file/onCreate" to customize
//
*/
import java.awt.*;
import java.util.*;
import java.util.zip.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.swing.table.*;
import javax.swing.table.*;
import javax.swing.event.*;
import javax.swing.border.*;
import java.util.Date;
import java.awt.Toolkit.*;
class MainForm extends JFrame
{
  public TableModel dataModel = new AbstractTableModel() {
          public int getColumnCount() { return 10; }
          public int getRowCount() { return 10;}
          public Object getValueAt(int row, int col) { return new Integer(row*col); }
      };
      
  Object [][] ceils = {{new Integer(1),new Integer(2),new Integer(3)},{new Integer(1),new Integer(2),new Integer(3)},{new Integer(1),new Integer(2),new Integer(3)}};
  String[] column = {"File Name","Original Size","Compressed Size","Ratio","Time","CRC"};
	private JToolBar bar = new JToolBar();
	
	
	private JMenuBar mb = new JMenuBar();
	private JMenu m1 = new JMenu("File");
	private JMenuItem  NewItem = new JMenuItem("New Zip",new ImageIcon(getClass().getResource("image/MNEW.JPG")));
	private JMenuItem  OpenItem = new JMenuItem("Open Zip",new ImageIcon(getClass().getResource("image/MOPEN.JPG"))); 
	private JMenuItem  CloseItem = new JMenuItem("Close Zip",new ImageIcon(getClass().getResource("image/MCLOSE.JPG")));
	private JMenuItem  ExitItem = new JMenuItem("Exit",new ImageIcon(getClass().getResource("image/MEXIT.JPG")));
	private JMenu muistyle = new JMenu("Look&Feel");
	
	private JMenu maction = new JMenu("Action");
	private JMenuItem madd = new JMenuItem("Add",new ImageIcon(getClass().getResource("image/MADD.JPG")));
	private JMenuItem mdelete = new JMenuItem("Delete",new ImageIcon(getClass().getResource("image/MDEL.JPG")));
	private JMenuItem mview = new JMenuItem("View",new ImageIcon(getClass().getResource("image/MVIEW.JPG")));
	private JMenuItem mextract = new JMenuItem("Extract",new ImageIcon(getClass().getResource("image/MEXTRACT.JPG")));
	
	private JMenu mhelp = new JMenu("Help");
	private JMenuItem mabout = new JMenuItem("About");
	
	private JRadioButtonMenuItem  muiwindow = new JRadioButtonMenuItem("Window");
	private JRadioButtonMenuItem  muimetal = new JRadioButtonMenuItem("Metal");
	private JRadioButtonMenuItem  muimotif = new JRadioButtonMenuItem("Motif");
	ButtonGroup muigroup = new ButtonGroup();
	
	private Vector namelist = new Vector();
	DefaultTableModel dm = new  DefaultTableModel(column, 0);
	 JTable table = new JTable(dm);
  private JScrollPane sp= new JScrollPane(table);
  JButton badd;
	JButton bdelete;
	JButton bnew;
	JButton bview;
	JButton bjar;
	JButton bexit;
	ImageIcon icon1;
	JLabel sbl1 = new JLabel("Current filename: -");
	JLabel sbl2 = new JLabel("Total file: -");
	JLabel sbl3 = new JLabel("Selected file: -");
	JPanel statusbar;
	private Vector FileList = new Vector();
	String zipname = null;
	ExtractDlg ed;
	ViewDlg vd;
	AboutDlg ad;
	private void removeRows()
	{
  	while(dm.getRowCount()!=0)
	  {
		  dm.removeRow(0);
  	}
	}
  
	
	MainForm()
	{

		Container form = getContentPane();
		icon1 = new ImageIcon(getClass().getResource("image/new.jpg"));
		bnew = new JButton("",icon1);
		//System.out.println(icon1.getIconHeight()); 
	  icon1 = new ImageIcon(getClass().getResource("image/open.jpg")); 
    JButton b1 =new JButton("",icon1);
		icon1 = new ImageIcon(getClass().getResource("image/extract.jpg"));
    JButton b2 =new JButton("",icon1);
		icon1 = new ImageIcon(getClass().getResource("image/add.jpg"));
		badd = new JButton("",icon1);
		icon1 = new ImageIcon(getClass().getResource("image/delete.jpg"));
		bdelete = new JButton("",icon1);
		icon1 = new ImageIcon(getClass().getResource("image/view.jpg"));
		bview = new JButton("",icon1);
		icon1 = new ImageIcon(getClass().getResource("image/jar.jpg"));
		bjar = new JButton("",icon1);		
		icon1 = new ImageIcon(getClass().getResource("image/exit.jpg"));
		bexit = new JButton("",icon1);
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		table.getSelectionModel().addListSelectionListener(new ListSelectionListener()
		{
		   public void valueChanged(ListSelectionEvent e)  
				{
				  int[] i = table.getSelectedRows();
					sbl3.setText("Selected file: "+(String)dm.getValueAt(i[0],0));

				}
		}
		);
		addWindowListener(new WindowAdapter()
		{
		  public void windowClosing(WindowEvent e)
			{
			   System.exit(0);
			}
		}
		);
		bnew.addActionListener(new ActionListener()
		{
		  public void actionPerformed(ActionEvent e)
			{
			  newZipFile();
			}
		}
		);
		b1.addActionListener(new ActionListener()
		{
		  public void actionPerformed(ActionEvent e)
			{
        openZipFile();
				if(zipname!=null)
				{
				 sbl1.setText("Current filename: "+zipname);	
				 sbl2.setText("Total compressed files: "+getZipedCount(zipname));	
			  }
			}
		});
    b2.addActionListener(new ActionListener()
		{
		  public void actionPerformed(ActionEvent e)
			{
		    if(zipname == null) return;
				if(ed==null)ed  = new ExtractDlg(MainForm.this);
			  Toolkit tk1 = Toolkit.getDefaultToolkit();
				ed.setLocation(new Point((tk1.getScreenSize().width/2)-160,(tk1.getScreenSize().height/2)-125));
		    ed.show();
			}
		});
    badd.addActionListener(new ActionListener()
		{
		   public void actionPerformed(ActionEvent e)
				{
				  if(zipname!=null)
					{
					  addFile();
						removeRows();
					  scanZipFile(zipname);
					 }
				}
		});
		
		bview.addActionListener(new ActionListener()
		{
		   public void actionPerformed(ActionEvent e)
				{
				  if(zipname==null) return;
					if(vd==null)
					{
					  vd =new ViewDlg(); 
	   			 }
					int[] i = table.getSelectedRows();	
					if(i[0]!=-1)
					{
					 
					 vd.viewText(zipname,(String)dm.getValueAt(i[0],0));
					}
				}
		});
		bexit.addActionListener(new ActionListener()
		{
		   public void actionPerformed(ActionEvent e)
				{
						System.exit(0);
				}
		});
		bdelete.addActionListener(new ActionListener()
		{
		  public void actionPerformed(ActionEvent e)
			{
			   int[] i = table.getSelectedRows();
			   if((zipname!=null) && (i!=null) && (i[0]!=1) &&(i[0]<table.getRowCount()))
					{
					deleteZipFile((String)dm.getValueAt(i[0],0));
				  reloadZipFile();	
					}
			}
		});
		bjar.addActionListener(new ActionListener()
		{
		  public void actionPerformed(ActionEvent e)
			{
         JOptionPane.showMessageDialog(MainForm.this,"Sorry,this function will be implemented in next version \n 这个功能将在下一个版本实现");   
			}
		});
		
		statusbar = new JPanel();
		statusbar.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
		statusbar.setLayout(new FlowLayout(FlowLayout.LEFT));
		sbl1.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
		sbl2.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
		sbl3.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
		statusbar.add(sbl1);
		statusbar.add(sbl2);
		statusbar.add(sbl3);
		b1.setToolTipText("Open");
		bar.add(bnew);
		bnew.setToolTipText("Create new Zip file");
		bar.add(b1);
		b1.setToolTipText("Open Zip file");
		bar.add(b2);
		b2.setToolTipText("Extraxt file");
		bar.add(badd);
		badd.setToolTipText("Add file to Zip");
		bar.add(bdelete);
		bdelete.setToolTipText("Delete file in Zip file");
		bar.add(bview);
		bview.setToolTipText("View selected file");
		bar.add(bjar);
		bjar.setToolTipText("Create new jar file");
		bar.add(bexit);
		bexit.setToolTipText("Exit");
		form.add(bar,"North");
		form.add(sp,"Center");
		form.add(statusbar,"South");
  	initMenu();

	}
	public void openZipFile()
	{
			   JFileChooser chooser = new JFileChooser();
				 chooser.setCurrentDirectory(new File("C:\\"));
				 chooser.setFileFilter(new javax.swing.filechooser.FileFilter()
					{  
					   public boolean accept(File f)
							{
							   if(f.getName().toLowerCase().endsWith(".zip") || f.getName().toLowerCase().endsWith(".jar") || f.isDirectory())
									 return true;
								 else
							     return false;
							}
					   public String getDescription()
							{
							   return "zip and jar file";
							}
					});
				 int r = chooser.showOpenDialog(MainForm.this);
				 if(r==JFileChooser.APPROVE_OPTION)
					{
					   zipname = chooser.getSelectedFile().getPath();
						 removeRows();
					 	 scanZipFile(zipname);
					}	  
	}
	public void scanZipFile(String filename)
	{
	   String[] ob = new String[6]; 
		 float ratio = 0;
		 try
			{
			  ZipInputStream zin = new ZipInputStream(new FileInputStream(filename));
				ZipEntry entry;
				while((entry=zin.getNextEntry())!=null)
				{
				  //v.clear();
					/*v.add(entry.getName());
					v.add(new Long(entry.getSize()));
					v.add(new Long(entry.getCompressedSize() ));
					v.add(new Long(entry.getTime()));
					v.add(new Long(entry. getCrc()));*/
					if(entry.isDirectory() || entry.getName().equals("..\\")) continue;
					ob[0] = (entry.getName());
					ob[1] = (new Long(entry.getSize())).toString();
					ob[2] = (new Long(entry.getCompressedSize() )).toString();
					ob[3] = (100*entry.getCompressedSize() / entry.getSize())+"%" ;
					ob[4] = (new Date(entry.getTime())).toString();
					ob[5] = (new Long(entry. getCrc())).toString();
					
				//	System.out.println(v.toString());
					zin.closeEntry();
					dm.addRow(ob);
				}
				zin.close();
			
			}
		 catch(IOException e)
			{
	
			}
		 
	}
  public boolean extractSelFile(String entryname,String filename)
	{
	   if((zipname!=null) &&(filename!=null) && (entryname!=null))
			{
			  try
				{
			   ZipInputStream zin = new ZipInputStream(new FileInputStream(zipname));
			   ZipEntry entry;
				while((entry=zin.getNextEntry())!=null)
				  {
					  if(entry.getName().equals(entryname))
						{
						  byte[] buf = new byte[1];
							BufferedInputStream bin = new BufferedInputStream(zin);
							BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(filename));
							while(bin.read(buf,0,1)!=-1)
							 {
								  bout.write(buf,0,1);
							 }
							 bout.close();
						}
           
						zin.closeEntry();
					}
				 zin.close();	
				}
				catch(IOException e)
				{
				 System.out.println(e);
				 return false;
				}
				return true;
			}
		 else
			{
			  return false;
			}
	}
 public void deleteZipFile(String entry)
	{
				 ZipOutputStream zout = null;
				 ZipInputStream zin = null;
				 File tmpzip = null;
							try
							{
							  tmpzip = File.createTempFile("zip",".tmp",new File(".\\"));
								zin = new ZipInputStream(new FileInputStream(zipname));
								zout = new ZipOutputStream(new FileOutputStream(tmpzip));
								ZipEntry ze;
								int len = 0;
								byte[] b = new byte[10240];
								while((ze=zin.getNextEntry())!=null )
								{
								    
										if(ze.getName().equals(entry)) 
										  {
											  
												zin.closeEntry();
												continue;
											}
										zout.putNextEntry(new ZipEntry(ze.getName()));
										//System.out.println(ze.getName());
										while((len=zin.read(b))!=-1)
										{
										  zout.write(b,0,len);
										}
										zout.closeEntry();
										zin.closeEntry();
								}
								ZipFile tmpzf = new ZipFile(zipname);
								if ((tmpzf.size())==1)
								{
								  ze = new ZipEntry("..\\");

⌨️ 快捷键说明

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