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

📄 findinjar.java

📁 自己编写的一个用于查找java类所在包的完整源程序,编程环境是Eclipse+JDK1.5.压缩包中包括了帮助(运行后也可以查看帮助菜单).是windows风格的运行界面.建议您自己做一个可双击运行的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getAboutMenuItem() {
		if (aboutMenuItem == null) {
			aboutMenuItem = new JMenuItem();
			aboutMenuItem.setText("关于");
			aboutMenuItem.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					String message="类/包检索工具 V0.11\n"+
					               "written by ikaoni\n"+
					               "2007.5";
					JOptionPane.showMessageDialog(jFrame, message, "关于",JOptionPane.INFORMATION_MESSAGE);
				}
			});
		}
		return aboutMenuItem;
	}

	  
	/**
	 * This method initializes jFrame	
	 * 	
	 * @return javax.swing.JFrame	
	 */
	private JFrame getJFrame() {
		if (jFrame == null) {
			jFrame = new JFrame();
			jFrame.setSize(new Dimension(601, 388));
			jFrame.setTitle("类/包检索工具");
			jFrame.setResizable(false);
			jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			jFrame.setJMenuBar(getJJMenuBar());
			jFrame.setContentPane(getJContentPane());
			
			listModel1 = new DefaultListModel();
			foldersList.setModel(listModel1);
			
			listModel2 = new DefaultListModel();
			injarList.setModel(listModel2);
			
		}
		return jFrame;
	}

	/**
	 * This method initializes jContentPane	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			totalFoundLabel = new JLabel();
			totalFoundLabel.setBounds(new Rectangle(461, 37, 117, 18));
			totalFoundLabel.setHorizontalAlignment(SwingConstants.RIGHT);
			totalFoundLabel.setText("共找到     个");
			totalFoundLabel.setVisible(false);
			injarLabel = new JLabel();
			injarLabel.setBounds(new Rectangle(308, 37, 118, 18));
			injarLabel.setText("所在的文件:");
			classLabel = new JLabel();
			classLabel.setBounds(new Rectangle(309, 14, 38, 18));
			classLabel.setText("类名:");
			foldersLabel = new JLabel();
			foldersLabel.setBounds(new Rectangle(10, 15, 80, 18));
			foldersLabel.setText("文件/文件夹:");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
			jContentPane.add(foldersLabel, null);
			jContentPane.add(classLabel, null);
			jContentPane.add(injarLabel, null);
			jContentPane.add(getClassTextBox(), null);
			jContentPane.add(getAddButton(), null);
			jContentPane.add(getRemoveButton(), null);
			jContentPane.add(getSearchButton(), null);
			jContentPane.add(getJScrollPane1(), null);
			jContentPane.add(getJScrollPane2(), null);
			jContentPane.add(getJScrollPane3(), null);
			jContentPane.add(totalFoundLabel, null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes jJMenuBar	
	 * 	
	 * @return javax.swing.JMenuBar	
	 */
	private JMenuBar getJJMenuBar() {
		if (jJMenuBar == null) {
			jJMenuBar = new JMenuBar();
			jJMenuBar.add(getFileMenu());
			jJMenuBar.add(getOptionMenu());
			jJMenuBar.add(getHelpMenu());
		}
		return jJMenuBar;
	}

	/**
	 * This method initializes fileMenu	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getFileMenu() {
		if (fileMenu == null) {
			fileMenu = new JMenu();
			fileMenu.setText("文件");
			fileMenu.setMnemonic(KeyEvent.VK_UNDEFINED);
			fileMenu.add(getAddMenuItem());
			fileMenu.add(getRemoveMenuItem());
			fileMenu.add(getSearchMenuItem());
			fileMenu.addSeparator();
			fileMenu.add(getExitMenuItem());
		}
		return fileMenu;
	}

	/**
	 * This method initializes addMenuItem	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getAddMenuItem() {
		if (addMenuItem == null) {
			addMenuItem = new JMenuItem();
			addMenuItem.setText("添加文件/文件夹..");
			addMenuItem.setActionCommand("添加文件/文件夹..");
			addMenuItem.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					addButton.getActionListeners()[0].actionPerformed(e);
				}
			});
		}
		return addMenuItem;
	}

	/**
	 * This method initializes searchMenuItem	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getSearchMenuItem() {
		if (searchMenuItem == null) {
			searchMenuItem = new JMenuItem();
			searchMenuItem.setText("检索");
			searchMenuItem.setActionCommand("检索");
			searchMenuItem.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					searchButton.getActionListeners()[0].actionPerformed(e);
				}
			});
		}
		return searchMenuItem;
	}

	/**
	 * This method initializes exitMenuItem	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getExitMenuItem() {
		if (exitMenuItem == null) {
			exitMenuItem = new JMenuItem();
			exitMenuItem.setText("退出");
			exitMenuItem.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.exit(0);
				}
			});
		}
		return exitMenuItem;
	}

	/**
	 * This method initializes classTextBox	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getClassTextBox() {
		if (classTextBox == null) {
			classTextBox = new JTextField();
			classTextBox.setBounds(new Rectangle(346, 11, 231, 24));
			classTextBox.setText("");
			classTextBox.setEditable(true);
		}
		return classTextBox;
	}

	/**
	 * This method initializes foldersList	
	 * 	
	 * @return javax.swing.JList	
	 */
	private JList getFoldersList() {
		if (foldersList == null) {
			foldersList = new JList();
		}
		return foldersList;
	}

	/**
	 * This method initializes injarList	
	 * 	
	 * @return javax.swing.JList	
	 */
	private JList getInjarList() {
		if (injarList == null) {
			injarList = new JList();
		}
		return injarList;
	}

	/**
	 * This method initializes addButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getAddButton() {
		if (addButton == null) {
			addButton = new JButton();
			addButton.setBounds(new Rectangle(58, 287, 66, 27));
			addButton.setText("添加..");
			addButton.addActionListener(new java.awt.event.ActionListener() {   
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					showJFileChooser();
				}
			
			});
		}
		return addButton;
	}
	
	private void showJFileChooser(){
		int retval=jfchooser.showDialog(jFrame,null);
		if(retval==JFileChooser.APPROVE_OPTION){
			File []files=jfchooser.getSelectedFiles();
			for(int i=0;i<files.length;i++){
				String filepath=files[i].getPath();
				if(checkRepeat(filepath)){
					String message=filepath+ "\n这一项已经添加过了.不能重复添加!";
					JOptionPane.showMessageDialog(jFrame, message, "错误",JOptionPane.ERROR_MESSAGE);
				}else{
					listModel1.addElement(filepath);
				}							
			}
		}
	}
	
	private boolean checkRepeat(String filepath){
		if(listModel1.getSize()>0){
			for(int i=0;i<listModel1.getSize();i++){
				if(listModel1.getElementAt(i).equals(filepath)){
					return true;
				}
			}
		}
		return false;
	}

	/**
	 * This method initializes removeButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getRemoveButton() {
		if (removeButton == null) {
			removeButton = new JButton();
			removeButton.setBounds(new Rectangle(169, 287, 60, 28));
			removeButton.setText("移除");
			removeButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(listModel1.getSize()==0){
						JOptionPane.showMessageDialog(jFrame, "\"文件/文件夹\"为空!","错误",JOptionPane.ERROR_MESSAGE);
						return;
					}else{
						int []indices=foldersList.getSelectedIndices();
						if(indices.length==0) {
							JOptionPane.showMessageDialog(jFrame, "您还没有选择要删除的文件/文件夹!","错误",JOptionPane.ERROR_MESSAGE);
							return;
						}
						for(int i=indices.length-1;i>=0;i--)
							listModel1.remove(indices[i]);
					}
				}
			});
		}
		return removeButton;
	}

	/**
	 * This method initializes searchButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getSearchButton() {
		if (searchButton == null) {
			searchButton = new JButton();
			searchButton.setBounds(new Rectangle(413, 287, 60, 28));
			searchButton.setText("检索");
			searchButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					String message;
					if(listModel1.getSize()==0){
						message="您还没有添加文件/文件夹!";
						JOptionPane.showMessageDialog(jFrame,message,"错误",JOptionPane.ERROR_MESSAGE);
						return;
					}
					if(classTextBox.getText().equals("")){
						message="必须输入要搜索的类名!\n"+
						        "注意大小写";
						JOptionPane.showMessageDialog(jFrame,message,"错误",JOptionPane.ERROR_MESSAGE);
						return;
					}
					totalFoundLabel.setVisible(false);
					totalFound=0;
					clearResult();
					setClassName(classTextBox.getText());
					for(int i=0;i<listModel1.getSize();i++){
						search(listModel1.getElementAt(i).toString(),recurse); 
					}
					outResult();
				}
			});
		}
		return searchButton;
	}
	
	private void clearResult(){
		if(fullclass){
			jScrollPane2.setVisible(true);
			jScrollPane3.setVisible(false);
			listModel2.clear();
		}else{
			jScrollPane2.setVisible(false);
			jScrollPane3.setVisible(true);
			//如何清空表格显示的数据
			for(int i=defaultTableModel.getRowCount()-1;i>=0;i--){
				defaultTableModel.removeRow(i);
			}
		}

	}
	private void outResult(){
		totalFoundLabel.setText("共找到 "+totalFound+" 个");
		totalFoundLabel.setVisible(true);
		if(fullclass){
			for(int i=0;i<jarFiles.size();i++)
				listModel2.addElement(jarFiles.get(i));
		}else{
			for(int i=0;i<jarFiles.size();i++){
				String []row=jarFiles.get(i).toString().split("/");
				defaultTableModel.addRow(row);
			}
		}
		jarFiles.clear();
	}

	/**
	 * This method initializes helpMenu	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getHelpMenu() {
		if (helpMenu == null) {
			helpMenu = new JMenu();
			helpMenu.setText("帮助");
			helpMenu.add(getHelpMenuItem());
			helpMenu.add(getAboutMenuItem());
		}
		return helpMenu;
	}


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

⌨️ 快捷键说明

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