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

📄 jarutil.java

📁 Ftp服务1.0
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * JarUtil.java
 *
 */

package ranab.jar;

import java.util.zip.ZipEntry;
import java.util.jar.JarFile;
import java.io.File;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.EtchedBorder;
import ranab.gui.*;
import ranab.jar.view.*;


/** 
 * Main JarUtil GUI frame.
 * 
 * @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>
 */
public 
class JarUtil extends JFrame {

    private final static String SPLASH_IMG = "ranab/jar/jar.gif";
    private final static String APP_NAME = "JarUtil";

    private JMenuBar mjMenuBar;

    private JMenu mjFileMenu;
    private JMenu mjNewMenu;
    private JMenuItem mjNewJarMenu;
    private JMenuItem mjNewZipMenu;
    private JMenuItem mjOpenMenu;
    private JMenuItem mjAddMenu;
    private JMenuItem mjCloseMenu;
    private JMenu mjExtractMenu;
    private JMenuItem mjExtractAllMenu;
    private JMenuItem mjExtractSelectMenu;
    private JSeparator mjExitSeparator;
    private JMenuItem mjExitMenu;
    
    private JMenu mjCustomizeMenu;
    private JMenu mjLookFeelMenu;
    private JCheckBoxMenuItem mjMetalMenu;
    private JCheckBoxMenuItem mjWindowsMenu;
    private JCheckBoxMenuItem mjMotifMenu;
    
    private JMenu mjViewMenu;
    private JCheckBoxMenuItem mjTableViewMenu;
    private JCheckBoxMenuItem mjTreeViewMenu;
    
    private JMenu mjHelpMenu;
    private JMenuItem mjAboutMenu;
    
    private JPanel mjTopPane; 

    private JarUtil mSelf;
    private JarTable mJarTable;
    private JarTree  mJarTree;
    
    private File mCurrentOpenFile;
    private Compressor mCompressor;
    private AddFileChooser mFileChooser;


    /** 
     * Creates new form JFrame 
     */
    public JarUtil(String zipFile) {

        // show splash window
        JWindow splashWin = GuiUtils.createSplashWindow(SPLASH_IMG);
        if (splashWin != null) {
            splashWin.setVisible(true);
        }

        initComponents ();
        pack ();
        setSize(new Dimension(700, 600));
        GuiUtils.setLocation(this);

        mCurrentOpenFile = null;
        mCompressor = null;
        mSelf = this;
        setAppStatus();

        // hide splash window
        if (splashWin != null) {
            splashWin.setVisible(false);
            splashWin.dispose();
        }
        
        setVisible(true);

        if (zipFile != null) {
            mCurrentOpenFile = new File(zipFile);
            openFile();
        }
    }


    /** 
     * This method is called from within the constructor to
     * initialize the form.
     */
    private void initComponents () {
        mjMenuBar = new JMenuBar ();
        mjFileMenu = new JMenu ("File");
        mjNewMenu = new JMenu ("New");
        mjNewJarMenu = new JMenuItem ("Jar");
        mjNewZipMenu = new JMenuItem ("Zip");
        mjOpenMenu = new JMenuItem ("Open");
        mjAddMenu = new JMenuItem ("Add");
        mjCloseMenu = new JMenuItem ("Close");
        mjExtractMenu = new JMenu ("Extract");
        mjExtractAllMenu = new JMenuItem ("All");
        mjExtractSelectMenu = new JMenuItem ("Selection");
        mjExitSeparator = new JSeparator ();
        mjExitMenu = new JMenuItem ("Exit");
        mjCustomizeMenu = new JMenu("Customize");
        mjLookFeelMenu = new JMenu ("Look & Feel");
        mjMetalMenu = new JCheckBoxMenuItem ("Metal", true);
        mjWindowsMenu = new JCheckBoxMenuItem ("Windows", false);
        mjMotifMenu = new JCheckBoxMenuItem ("Motif", false);
        mjViewMenu = new JMenu("View");
        mjTableViewMenu = new JCheckBoxMenuItem("Table", true);
        mjTreeViewMenu = new JCheckBoxMenuItem("Tree", false);
        mjHelpMenu = new JMenu("Help");
        mjAboutMenu = new JMenuItem("About");
        
        mFileChooser = new AddFileChooser();

        // new file menu
        mjNewJarMenu.addActionListener (new ActionListener () {
                                            public void actionPerformed (ActionEvent evt) {
                                                mjNewJarMenuActionPerformed (evt);
                                            }
                                        }
                                       );
        mjNewMenu.add (mjNewJarMenu);
        mjNewZipMenu.addActionListener (new ActionListener () {
                                            public void actionPerformed (ActionEvent evt) {
                                                mjNewZipMenuActionPerformed (evt);
                                            }
                                        }
                                       );        
        mjNewMenu.add (mjNewZipMenu);
        mjFileMenu.add (mjNewMenu);
        
        // open menu
        mjOpenMenu.addActionListener (new ActionListener () {
                                          public void actionPerformed (ActionEvent evt) {
                                              mjOpenMenuActionPerformed (evt);
                                          }
                                      }
                                     );
        mjFileMenu.add (mjOpenMenu);
        
        // add menu
        mjAddMenu.addActionListener (new ActionListener () {
                                         public void actionPerformed (ActionEvent evt) {
                                             mjAddMenuActionPerformed (evt);
                                         }
                                     }
                                    );
        mjFileMenu.add (mjAddMenu);
        
        // close menu
        mjCloseMenu.addActionListener (new ActionListener () {
                                           public void actionPerformed (ActionEvent evt) {
                                               mjCloseMenuActionPerformed (evt);
                                           }
                                       }
                                      );
        mjFileMenu.add (mjCloseMenu);
        
        // extract menu
        mjExtractAllMenu.addActionListener (new ActionListener () {
                                                public void actionPerformed (ActionEvent evt) {
                                                    mjExtractAllMenuActionPerformed (evt);
                                                }
                                            }
                                           );
        mjExtractMenu.add(mjExtractAllMenu);

        mjExtractSelectMenu.addActionListener (new ActionListener () {
                                                   public void actionPerformed (ActionEvent evt) {
                                                       mjExtractSelectMenuActionPerformed (evt);
                                                   }
                                               }
                                              );
        mjExtractMenu.add(mjExtractSelectMenu);
        mjFileMenu.add (mjExtractMenu);

        mjFileMenu.add (mjExitSeparator);
        
        // exit menu
        mjExitMenu.addActionListener (new ActionListener () {
                                          public void actionPerformed (ActionEvent evt) {
                                              mjExitMenuActionPerformed (evt);
                                          }
                                      }
                                     );
        mjFileMenu.add (mjExitMenu);

        mjMenuBar.add (mjFileMenu);
       
        // look and feel menu
        mjMetalMenu.addActionListener (new ActionListener () {
                                           public void actionPerformed (ActionEvent evt) {
                                               mjMetalMenuActionPerformed (evt);
                                           }
                                       }
                                      );
        mjLookFeelMenu.add (mjMetalMenu);
        
        mjWindowsMenu.addActionListener (new ActionListener () {
                                             public void actionPerformed (ActionEvent evt) {
                                                 mjWindowsMenuActionPerformed (evt);
                                             }
                                         }
                                        );
        mjLookFeelMenu.add (mjWindowsMenu);

       
        mjMotifMenu.addActionListener (new ActionListener () {
                                           public void actionPerformed (ActionEvent evt) {
                                               mjMotifMenuActionPerformed (evt);
                                           }
                                       }
                                      );
        mjLookFeelMenu.add (mjMotifMenu);
        
        mjCustomizeMenu.add (mjLookFeelMenu);
        
        // view menu
        mjTableViewMenu.addActionListener (new ActionListener () {
                                           public void actionPerformed (ActionEvent evt) {
                                               mjTableViewMenuActionPerformed (evt);
                                           }
                                       }
                                      );
        mjViewMenu.add (mjTableViewMenu);
        
        mjTreeViewMenu.addActionListener (new ActionListener () {
                                           public void actionPerformed (ActionEvent evt) {
                                               mjTreeViewMenuActionPerformed (evt);
                                           }
                                       }
                                      );
        mjViewMenu.add (mjTreeViewMenu);
        
        mjCustomizeMenu.add(mjViewMenu);
        
        mjMenuBar.add (mjCustomizeMenu);
           
        
        // help menu
        mjAboutMenu.addActionListener (new ActionListener()  {
                                           public void actionPerformed(ActionEvent evt)  {
                                               mjAboutMenuActionPerformed (evt);
                                        }
                                       }
                                    );
        mjHelpMenu.add (mjAboutMenu);
        mjMenuBar.add (mjHelpMenu);
        
        // draw table pane
        mjTopPane = new JPanel();
        mjTopPane.setLayout(new BorderLayout());
        mJarTable = new JarTable(mjTopPane);
        mJarTable.setActive(true);
        mJarTree  = new JarTree(mjTopPane);
        mJarTree.setActive(false);
        mjTopPane.setBackground(Color.white);
        mjTopPane.add(mJarTable.getPanel(), BorderLayout.CENTER);
        getContentPane ().add (mjTopPane, BorderLayout.CENTER);
        
        setJMenuBar (mjMenuBar);
    }
    
    
    ///// all menu handlers /////
    // new zip menu handle
    private void mjNewZipMenuActionPerformed (ActionEvent evt) {

        // get filename
        String newZip = GuiUtils.getFileName(mSelf);
        if (newZip == null) {
            return;
        }

        // if exists get confirmation
        File zipFile = new File(newZip);
        if (zipFile.exists()) {
            boolean yes = GuiUtils.getConfirmation(mSelf, "Do you want to overwrite " + zipFile + "?");
            if (!yes) {
                return;
            }
        }

        // open compressor
        try {
            mCompressor = new ZipCompressor(zipFile);
            mCompressor.addObserver(mJarTable);

⌨️ 快捷键说明

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