`
come_for_dream
  • 浏览: 120823 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

界面化文件搜索器

    博客分类:
  • java
 
阅读更多

       文件搜索2_____基于图形界面

 

 

上次做过控制台的文件搜索,感觉不过瘾,就估摸着做了一个界面化的搜索。在这里使用了JChooser控件来选择目录位置,加载一个滚动面板,用到了JList在滚动面板上加载数据。最后使用了皮肤包来美化界面。做这些东西感觉会有弱弱的成就感。

 

   首先展示一下没有使用皮肤包的效果

 



 上面是java系统自己的界面,下面是美化后的界面

 

 

 



 

 

 我们可以看到美化后的界面给人的感觉很不错

 

我们看看这个文件搜索的主要代码,搜索文件的代码和上次写的有些稍微的不同,就是要把,搜索到的文件加入队列

 

 

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;

import javax.swing.JTextField;


public class SearchListener implements ActionListener{

	//声明两个文本框
	private JTextField jtfFileName;
	private JTextField jtfPosition;

	ArrayList strFindFiles= new ArrayList<String>();
	private static int countFile=0;
	
	//两个字符串用来储存文件位置和名称
	String fileName;
	String filePosition;
	
	public SearchListener(JTextField jtfFileName,JTextField jtfPosition) {
		//将传递过来的文本框付给自己的
		this.jtfFileName=jtfFileName;
		this.jtfPosition=jtfPosition;
	}
	
	
	@Override
	public void actionPerformed(ActionEvent e) {
		//清空列表
		strFindFiles.clear();
		 for(int i=0;i<strFindFiles.toArray().length;i++){
			 System.out.println(strFindFiles.toArray()[i]);
		 }
		//得到文本框中的内容
		 fileName=jtfFileName.getText();
		 filePosition=jtfPosition.getText();
		 searchFile(filePosition);
		
		 //在
		 UI.FileList.setListData(strFindFiles.toArray());
		
	}


	private void searchFile(String filePosition) {
		//创建文件
		File dirFile=new File(filePosition);
		
		File[] resFile=dirFile.listFiles();
		
		if(resFile==null||resFile.length==0){
			return;
		}
		
		for(int i=0;i<resFile.length;i++){
			if(resFile[i].isDirectory()){
				//得到文件夹的名字
				String subDir=resFile[i].getAbsolutePath();
				//判断文件夹是否含有关键字
				if(subDir.contains((CharSequence) fileName)){
					//如果含有,将文件夹的路径加到队列中
					strFindFiles.add(resFile[i].getAbsolutePath());
				}		
				
				//递归到下一个文件夹
				searchFile(subDir);
			}
			//如果是文件
			if(resFile[i].isFile()){
				//得到文件名
				String name=resFile[i].getName();
				
				
				//判断是否含有关键字
				if(name.contains((CharSequence)fileName)){
					//如何含有将文件的居然对路径加到队列中
					strFindFiles.add(resFile[i].getAbsolutePath());
					

				}
				
			}
		}
		
	}
	

}

 

 下面的是UI 的一些主要代码

 

 

 

 

 

 

public void init() {
		// 用指定的图片替换界面左上角的咖啡图标
		Toolkit tk=Toolkit.getDefaultToolkit();
	    Image img=tk.getImage("F:\\ling.jpg");
	    this.setIconImage(img);
	    
	    //初始化界面的基本信息
		this.setTitle("文件查找器");
		this.setSize(700, 600);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);
		this.setLayout(null);
		//用皮肤包美化界面
//		try {
//			// 设置本属性将改变窗口边框样式定义
//			BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.osLookAndFeelDecorated;
//			org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
//		} catch (Exception e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
		// 下面开始添加其他的组件

		
		// 添加一个标签
		JLabel jplPST = new JLabel("选择文件夹位置:");
		jplPST.setBounds(80, 20, 120, 30);
		this.add(jplPST);

		// 添加一个浏览按钮
		JButton jbtSkim = new JButton("浏览");
		jbtSkim.setBounds(520, 20, 70, 30);
		this.add(jbtSkim);

		// 添加一个关键字提示标签
		JLabel jlKW = new JLabel("请输入文件名称:");
		jlKW.setBounds(80, 60, 110, 30);
		this.add(jlKW);

		// 添加一个搜索按钮
		JButton jbtSearh = new JButton("搜索");
		jbtSearh.setBounds(520, 60, 70, 30);
		this.add(jbtSearh);

//		//设置面板的颜色
//		jplFiles.setBackground(Color.white);
//		//设置面板的位置
//		jplFiles.setBounds(50, 110, 600, 420);
//		this.add(jplFiles);
		//下步比较重要,为面板添加一个滚动面板
//		jplFiles.add(new JScrollPane(FileList,
//		JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
//		JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
		//设置JList的行数
		FileList.setVisibleRowCount(25);
		//设置JList的宽度
		FileList.setFixedCellWidth(550);

		//添加一个滚动面板,数据的加载设置为FileList
		JScrollPane jsp=new JScrollPane(FileList,
				JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
				JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		//设置滚动面板的位置
		jsp.setBounds(50, 110, 600, 420);
		this.add(jsp);

		//显示界面
		this.setVisible(true);
		jbtSkim.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				//声明一个JChooser来获得一个查找文件夹的路径
				JFileChooser fch = new JFileChooser();
				//设置当前的文件选择模式,这里设置为只选择文件夹
				fch.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
				//显示文件选择窗口
				int option = fch.showDialog(UI.this, null);

				//若用户选择打开则执行
				if (option == JFileChooser.APPROVE_OPTION) {
					//获得绝对路径
					String path = fch.getSelectedFile().getAbsolutePath();
					//将绝对路径放到目录文本框中
					jtfPosition.setText(path);
				}

			}

		});

		// 为搜索按钮添加一个监听
		SearchListener sl = new SearchListener(jtfFileName, jtfPosition);

		//为按钮添加一个监听器
		jbtSearh.addActionListener(sl);
	}

 

不过程序还有一个很大的缺陷。就是在面板上加载的文件信息只能呈现在面板上,而不能像操作系统自带的文件搜索程序那样,在可以单击搜索到的文件并用特定的程序打开。对于这个缺陷会在以后的编写中慢慢的加上去。。具体的程序代码,我附在附件上了

 

<!--EndFragment--><!--EndFragment-->

 

<!--EndFragment-->
  • 大小: 89.5 KB
  • 大小: 47.2 KB
  • 大小: 202.3 KB
  • 大小: 59.8 KB
分享到:
评论

相关推荐

    文件搜索器(文件搜索器)

    文件搜索器,正如其名,是一种能够帮助用户在计算机中快速定位和查找特定文件的工具。在日常工作中,我们常常需要查找存储在电脑中的某个文件,但面对庞大的文件系统,手动逐个文件夹查找无疑效率低下。这时,一个...

    文件搜索器(用于文件的搜索,更改日期等)

    在提供的压缩包文件名称列表中,`SearchMyFiles.cfg`可能是该文件搜索器的配置文件,包含了用户的个性化设置、搜索历史等信息,用户可以通过编辑此文件来调整软件的行为。而`SearchMyFiles.exe`则是程序的可执行文件...

    一个多线程文件搜索器

    《一个多线程文件搜索器详解》 在计算机领域,文件搜索是日常操作中不可或缺的一环。传统的文件搜索工具往往依赖单线程进行,这在处理大量数据时可能会显得效率低下,尤其是在大型文件系统中。因此,多线程文件搜索...

    VC6.0 文件搜索器

    通过"VC6.0 文件搜索器",开发者可以学习到如何运用C++和MFC进行Windows应用程序开发,如何设计用户友好的界面,以及如何有效地搜索和处理文件系统数据。此外,对DLL的使用和理解,以及如何利用manifest文件提升程序...

    QT写的文件搜索器(Designer窗体设计结合代码)

    总的来说,这个"QT写的文件搜索器"项目展示了如何利用Qt Designer创建用户界面,以及如何结合C++代码实现文件搜索功能。通过这个项目,开发者可以学习到Qt库的基本使用,包括UI设计、事件处理、文件操作和目录遍历等...

    易语言皆杀文件搜索器1源码,易语言皆杀文件搜索器1.2

    4. **用户界面设计**:"皆杀文件搜索器"必然有一个用户友好的界面,允许用户输入搜索条件、显示搜索结果等。易语言有丰富的图形用户界面(GUI)组件,如文本框、按钮、列表框等,源码会展示如何布局和控制这些组件。...

    多功能文件搜索器1.7

    【多功能文件搜索器1.7】是一款高效、便捷...总的来说,【多功能文件搜索器1.7】是一款实用的文件管理工具,尤其适合那些处理大量文件的用户,它的高效搜索能力和多样化的搜索选项,将使你的文件管理工作变得更加轻松。

    Everything桌面文件搜索器

    "Everything桌面文件搜索器"是一款高效且实用的文件查找工具,尤其对于经常需要在大量文件中定位特定信息的用户来说,它提供了极快的搜索体验。这款软件以其小巧的体积、出色的性能和易于使用的界面而受到广泛赞誉。...

    易语言源码易语言文件搜索器.rar

    - **用户界面**:文件搜索器通常有一个用户界面,用于输入搜索条件和显示结果,这涉及到了窗口、控件的创建和事件处理。 3. **易语言编程实践** - **源码分析**:通过阅读源码,可以学习到如何组织程序结构,如何...

    Delphi文件搜索器小程序源码..rar

    【Delphi文件搜索器小程序源码分析】 Delphi是一款基于Object Pascal编程语言的集成开发环境(IDE),由Embarcadero Technologies公司维护。它以其高效、快速的编译能力和丰富的库支持,在Windows平台上广泛用于...

    pnfind_文件搜索器.pdf

    首先,PNFind文件搜索器的界面设计非常直观。界面由多个区域构成:Title区域显示当前文件的路径,Menu区域提供了文件管理、编辑、预览等操作的菜单选项,Button区域有快捷操作按钮,PNTree区域显示目录结构,...

    文件搜索器

    在IT领域,文件搜索器是一种常见的实用工具,它允许用户快速定位和查找计算机中的特定文件或文件夹。本文将深入探讨“文件搜索器”的实现,主要关注使用C语言和VC6.0集成开发环境,以及如何利用API函数来增强搜索...

    多线程文件搜索器

    多线程文件搜索器是一种高效的应用程序,它利用多线程技术来并行搜索文件系统中的特定文件。这种技术尤其适用于大型文件系统,因为它可以显著提高搜索速度,缩短用户等待时间。下面我们将详细探讨多线程和文件搜索这...

    基于winform的资源搜索器

    【基于WinForm的资源搜索器】是一款用户界面友好、功能实用的应用程序,它利用Windows Forms(WinForm)框架开发,专为用户提供定制化的文件搜索功能。WinForm是.NET Framework的一部分,用于构建桌面应用程序,它...

    远方文件搜索器v1.10.zip

    在用户界面设计上,"远方文件搜索器"可能遵循了简洁易用的原则,采用直观的图形化界面,让用户能够轻松上手。考虑到文件搜索可能涉及大量数据,软件可能会提供预览功能,让用户在找到目标文件前就能查看文件内容,...

    文件批量复制搜索器.rar

    其中,“文件批量复制搜索器.rar”便是为了提升用户在文件管理方面的效率而开发的高效实用工具。其不仅支持在本机上操作,还能在局域网的“网上邻居”中实现文件的批量复制、搜索、移动和删除,极大地方便了用户在...

    appendix010---文件搜索器

    本实例“appendix010---文件搜索器”是《Delphi系统开发实例精粹》一书中的源码,它提供了一个实用工具,帮助用户在计算机上快速查找特定的文件或文件夹。下面我们将深入探讨这个文件搜索器的设计理念、关键技术和...

    java 文件搜索引挚

    Java 文件搜索引挚是用于在计算机系统中快速查找指定类型或具有特定属性的文件的工具。这个工具通常基于Java编程语言...通过深入理解和应用这些技术,我们可以构建出强大且灵活的文件搜索工具,满足用户的多样化需求。

    精彩编程与编程技巧-VB中自制文件搜索器...

    ### 知识点:在VB中开发自制文件搜索器 #### 1. 项目概述 在Visual Basic(简称VB)环境中构建一个文件搜索工具,旨在帮助用户高效地查找指定驱动器及其子目录下的文件。本项目的核心功能包括: - 驱动器选择 ...

Global site tag (gtag.js) - Google Analytics