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

📄 mainframe.java

📁 java实现的类winrar的压缩工具
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		return jSplitPane;
	}

	/**
	 * This method initializes jScrollPane
	 * 
	 * @return javax.swing.JScrollPane
	 */
	private JScrollPane getJScrollPane1() {
		if (jScrollPane1 == null) {
			jScrollPane1 = new JScrollPane();
			jScrollPane1.setPreferredSize(new java.awt.Dimension(130, 363));
			jScrollPane1.setViewportView(getDirTree());
		}
		return jScrollPane1;
	}

	/**
	 * This method initializes jScrollPane2
	 * 
	 * @return javax.swing.JScrollPane
	 */
	private JScrollPane getJScrollPane2() {
		if (jScrollPane2 == null) {
			jScrollPane2 = new JScrollPane();
			jScrollPane2.setPreferredSize(new java.awt.Dimension(150, 421));
			jScrollPane2.setViewportView(getFileList());
		}
		return jScrollPane2;
	}

	/**
	 * This method initializes jBtnAdd
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJBtnAdd() {
		if (jBtnAdd == null) {
			jBtnAdd = new JButton();
			jBtnAdd.setPreferredSize(new java.awt.Dimension(48, 48));
			jBtnAdd.setIcon(new ImageIcon(getClass().getResource(
					"/resources/add.gif")));
			jBtnAdd.setRolloverIcon(new ImageIcon(getClass().getResource(
					"/resources/add.gif")));
			jBtnAdd.setToolTipText("添加(Alt+A)");
			jBtnAdd.setSize(new java.awt.Dimension(48, 48));
			jBtnAdd.setText("");
			jBtnAdd.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					File f[] = getFileList().getSelectedFiles();
					if (f == null || f.length == 0) {
						JOptionPane.showMessageDialog(null, "请选择文件!");
						return;
					}
					AddFileDialog addFileDialog = new AddFileDialog(
							MainFrame.this, getFileList().getSelectedFiles());
					addFileDialog.setVisible(true);
				}
			});
		}
		return jBtnAdd;
	}

	/**
	 * This method initializes jBtnExtract
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJBtnExtract() {
		if (jBtnExtract == null) {
			jBtnExtract = new JButton();
			jBtnExtract.setText("");
			jBtnExtract.setToolTipText("解压到(Alt+E)");
			jBtnExtract.setIcon(new ImageIcon(getClass().getResource(
					"/resources/extract.gif")));
			jBtnExtract.setPreferredSize(new java.awt.Dimension(48, 48));
			jBtnExtract.setSize(new java.awt.Dimension(48, 48));
			jBtnExtract.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					File f[] = getFileList().getSelectedFiles();
					if (f == null || f.length == 0) {
						JOptionPane.showMessageDialog(null, "请选择文件!");
						return;
					}
					if (!f[0].toString().endsWith(".zip")
							&& !f[0].toString().endsWith(".gz")
							&& !f[0].toString().endsWith(".jar")) {
						JOptionPane.showMessageDialog(null,
								"只能选择一个文件,而且只支持.zip,.gz,.jar文件");
						return;
					}
					source = f[0].toString();
					extractDialog = new ExtractDialog(MainFrame.this, true,
							source);
					extractDialog.setVisible(true);
				}
			});
		}
		return jBtnExtract;
	}

	/**
	 * This method initializes jBtnTest
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJBtnTest() {
		if (jBtnTest == null) {
			jBtnTest = new JButton();
			jBtnTest.setText("");
			jBtnTest.setSize(new java.awt.Dimension(48, 48));
			jBtnTest.setToolTipText("测试(Alt+T)");
			jBtnTest.setIcon(new ImageIcon(getClass().getResource(
					"/resources/test.gif")));
			jBtnTest.setPreferredSize(new java.awt.Dimension(48, 48));
			jBtnTest.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					File f[] = getFileList().getSelectedFiles();
					if (f == null || f.length == 0) {
						JOptionPane.showMessageDialog(null, "请选择文件!");
						return;
					}
					boolean result = u.testFile(f[0]);
					if (result) {
						JOptionPane.showMessageDialog(null, "测试文件成功!");
					} else {
						JOptionPane.showMessageDialog(null, "测试文件失败!");
					}
				}
			});
		}
		return jBtnTest;
	}

	/**
	 * This method initializes jBtnView
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJBtnView() {
		if (jBtnView == null) {
			jBtnView = new JButton();
			jBtnView.setText("");
			jBtnView.setSize(new java.awt.Dimension(48, 48));
			jBtnView.setIcon(new ImageIcon(getClass().getResource(
					"/resources/view.gif")));
			jBtnView.setToolTipText("查看(Alt+V)");
			jBtnView.setPreferredSize(new java.awt.Dimension(48, 48));
			jBtnView.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					File[] files=fileList.getSelectedFiles();
					if (files == null || files.length == 0) {
						JOptionPane.showMessageDialog(null, "请选择文件!");
						return;
					}
					if (files[0].isDirectory()){
						fileList.setPath(files[0].getAbsolutePath());
					}
					else{
						TextEditor te = new TextEditor(files[0]);
						te.show();
						te.openFile();
					}
				}
			});
		}
		return jBtnView;
	}

	/**
	 * This method initializes jBtnDelete
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJBtnDelete() {
		if (jBtnDelete == null) {
			jBtnDelete = new JButton();
			jBtnDelete.setText("");
			jBtnDelete.setSize(new java.awt.Dimension(48, 48));
			jBtnDelete.setIcon(new ImageIcon(getClass().getResource(
					"/resources/delete.gif")));
			jBtnDelete.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (JOptionPane.showConfirmDialog(null, "确定要删除吗?","确定",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION) {
						File file[] = getFileList().getSelectedFiles();
						for (int i = 0; i < file.length; i++) {
							if (file[i].isFile()) {
								file[i].delete();
							} else {
								delFolder(file[i].toString());
							}
						}
					}
				}
			});
			jBtnDelete.setToolTipText("删除(Alt+D)");
			jBtnDelete.setPreferredSize(new java.awt.Dimension(48, 48));
		}
		return jBtnDelete;
	}

	/**
	 * This method initializes jBtnSearch
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJBtnSearch() {
		if (jBtnSearch == null) {
			jBtnSearch = new JButton();
			jBtnSearch.setText("");
			jBtnSearch.setToolTipText("查找(Ctrl+F)");
			jBtnSearch.setPreferredSize(new java.awt.Dimension(48, 48));
			jBtnSearch.setSize(new java.awt.Dimension(48, 48));
			jBtnSearch.setIcon(new ImageIcon(getClass().getResource(
					"/resources/search.gif")));
		}
		return jBtnSearch;
	}

	/**
	 * This method initializes jBtnWizard
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJBtnWizard() {
		if (jBtnWizard == null) {
			jBtnWizard = new JButton();
			jBtnWizard.setText("");
			jBtnWizard.setPreferredSize(new java.awt.Dimension(48, 48));
			jBtnWizard.setSize(new java.awt.Dimension(48, 48));
			jBtnWizard.setToolTipText("向导(Ctrl+W)");
			jBtnWizard.setIcon(new ImageIcon(getClass().getResource(
					"/resources/wizard.gif")));
			jBtnWizard.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					WizardDialog wizard = new WizardDialog(MainFrame.this,true);
					wizard.setVisible(true);
				}
			});
		}
		return jBtnWizard;
	}

	/**
	 * This method initializes jBtnInfo
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJBtnInfo() {
		if (jBtnInfo == null) {
			jBtnInfo = new JButton();
			jBtnInfo.setText("");
			jBtnInfo.setPreferredSize(new java.awt.Dimension(48, 48));
			jBtnInfo.setSize(new java.awt.Dimension(48, 48));
			jBtnInfo.setToolTipText("信息(Ctrl+I)");
			jBtnInfo.setIcon(new ImageIcon(getClass().getResource(
					"/resources/info.gif")));
		}
		return jBtnInfo;
	}

	/**
	 * This method initializes jBtnExit
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJBtnExit() {
		if (jBtnExit == null) {
			jBtnExit = new JButton();
			jBtnExit.setText("");
			jBtnExit.setPreferredSize(new java.awt.Dimension(48, 48));
			jBtnExit.setSize(new java.awt.Dimension(48, 48));
			jBtnExit.setToolTipText("退出(Alt+F4)");
			jBtnExit.setIcon(new ImageIcon(getClass().getResource(
					"/resources/exit.gif")));
			jBtnExit.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					exit();
				}
			});
		}
		return jBtnExit;
	}

	/**
	 * This method initializes jBtnEncrypt
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJBtnEncrypt() {
		if (jBtnEncrypt == null) {
			jBtnEncrypt = new JButton();
			jBtnEncrypt.setText("");
			jBtnEncrypt.setToolTipText("加密(Ctrl+P)");
			jBtnEncrypt.setSize(new java.awt.Dimension(48, 48));
			jBtnEncrypt.setPreferredSize(new java.awt.Dimension(48, 48));
			jBtnEncrypt.setEnabled(false);
			jBtnEncrypt.setIcon(new ImageIcon(getClass().getResource(
					"/resources/encrypt.gif")));
		}
		return jBtnEncrypt;
	}

	/**
	 * This method initializes statueBar
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getStatusBar() {
		if (statusBar == null) {
			jLabelTotal = new JLabel();
			jLabelTotal.setBorder(BorderFactory.createLoweredBevelBorder());
			jLabelTotal.setPreferredSize(new java.awt.Dimension(290,25));
			jLabelTotal.setText("总计"+fileList.getDirsNum()+"个文件夹和"+fileList.getTotalSize()+"字节("+fileList.getFilesNum()+"个文件)");
			jLabelStatus = new JLabel();
			jLabelStatus.setBorder(BorderFactory.createLoweredBevelBorder());
			jLabelStatus.setText("您已经选中了0个文件");
			jLabelStatus.setPreferredSize(new java.awt.Dimension(200,25));
			statusBar = new JPanel();
			statusBar.setLayout(new BorderLayout());
			statusBar.setPreferredSize(new java.awt.Dimension(550,25));
			statusBar.add(getJMenuDriveChooser(), java.awt.BorderLayout.WEST);
			statusBar.add(jLabelStatus, java.awt.BorderLayout.CENTER);
			statusBar.add(jLabelTotal, java.awt.BorderLayout.EAST);
		}
		return statusBar;
	}

	/**
	 * Exit this application
	 */
	private void exit() {
		System.exit(0);
	}

	/**
	 * This method initializes jMenuDriveChooser
	 * 
	 * @return javax.swing.JMenu
	 */
	private JMenu getJMenuDriveChooser() {
		if (jMenuDriveChooser == null) {
			jMenuDriveChooser = new JMenu();
			jMenuDriveChooser.setIcon(new ImageIcon(getClass().getResource(
					"/resources/drive.gif")));
			jMenuDriveChooser.setPreferredSize(new java.awt.Dimension(40,25));
			jMenuDriveChooser.setBorder(BorderFactory
					.createLoweredBevelBorder());
			jMenuDriveChooser.setToolTipText("选择驱动器");
			for (int i = 0; i < jMenuItemDrives.length; i++) {
				jMenuDriveChooser.add(jMenuItemDrives[i]);
			}
		}
		return jMenuDriveChooser;
	}

	/**
	 * This method initializes dirTree
	 * 
	 * @return javazip.DirTree
	 */
	private DirTree getDirTree() {
		if (dirTree == null) {
			dirTree = new DirTree();
			dirTree
					.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
						public void valueChanged(
								javax.swing.event.TreeSelectionEvent e) {
							fileList.setPath(dirTree.getPath());
							jLabelTotal.setText("总计"+fileList.getDirsNum()+"个文件夹和"+fileList.getTotalSize()+"字节("+fileList.getFilesNum()+"个文件)");
						}
					});
		}
		return dirTree;
	}

	/**
	 * This method initializes fileList
	 * 
	 * @return javazip.FileList
	 */
	private FileList getFileList() {
		if (fileList == null) {
			fileList = new FileList();
			fileList.addMouseListener(new java.awt.event.MouseAdapter() {   
				public void mouseReleased(java.awt.event.MouseEvent e) {    
					jLabelStatus.setText("您已经选中了"+fileList.getSelectedFileNums()+"个文件");
				}
			});
		}
		return fileList;
	}

	/**
	 * 
	 * 
	 */
	private void selectAll() {
		this.getFileList().selectAll();
	}

	/**
	 * 
	 * 
	 */
	private void selectConverse() {
		for (int i = 0; i < this.getFileList().getRowCount(); i++) {

		}
	}

	/**
	 * 查找文件
	 * 
	 * @param tempdir
	 */
	private void searchFiles(File tempdir) {
		if (tempdir.exists()) {
			if (tempdir.isDirectory()) {
				File[] tempfiles = tempdir.listFiles();
				for (int i = 0; i < tempfiles.length; i++) {
					if (tempfiles[i].isDirectory())
						searchFiles(tempfiles[i]);
					else
						AllFiles.add(tempfiles[i]);
				}
			} else {
				AllFiles.add(tempdir);
			}
		}
	}

	/**
	 * 删除文件夹
	 * 
	 * @param filePathAndName
	 *            String 文件夹路径及名称 如c:/fqf
	 * @param fileContent
	 *            String
	 * @return boolean
	 */
	public void delFolder(String folderPath) {
		try {
			delAllFile(folderPath); // 删除完里面所有内容
			String filePath = folderPath;
			filePath = filePath.toString();
			java.io.File myFilePath = new java.io.File(filePath);
			myFilePath.delete(); // 删除空文件夹
		} catch (Exception e) {
			System.out.println("删除文件夹操作出错");
			e.printStackTrace();
		}

	}

	/**
	 * 删除文件夹里面的所有文件
	 * 
	 * @param path
	 *            String 文件夹路径 如 c:/fqf
	 */
	public void delAllFile(String path) {
		File file = new File(path);
		if (!file.exists()) {
			return;
		}
		if (!file.isDirectory()) {
			return;
		}
		String[] tempList = file.list();
		File temp = null;
		for (int i = 0; i < tempList.length; i++) {
			if (path.endsWith(File.separator)) {
				temp = new File(path + tempList[i]);
			} else {
				temp = new File(path + File.separator + tempList[i]);
			}
			if (temp.isFile()) {
				temp.delete();
			}
			if (temp.isDirectory()) {
				delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件
				delFolder(path + "/" + tempList[i]);// 再删除空文件夹
			}
		}
	}

	/**
	 * Launches this application
	 */
	public static void main(String[] args) {
		
		MainFrame application = new MainFrame();
		application.setVisible(true);
	}

} // @jve:decl-index=0:visual-constraint="10,10"

⌨️ 快捷键说明

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