图形界面指定地址统计文件个数

  

  这几天在做练习,感觉都没有原来顺手了,不知道为什么    ,本来想写一个找点信心的,但还是觉得写一个文件和界面练习的;

 

技术点:图形界面  swing   awt

JTextArea();设置多行文本     JTextField()设置输入框   JScrollPane()设置滚动条 

 

Graphics g = panel.getGraphics();获取画布

 

File类的应用     isFile();判断是文件     isDirectory();判断是文件目录    getAbsolutePath()文件的路劲

 

监听器:动作监听器  ActionListener

 

在容器中可以使用getText来获取内容



 



 

 

 

//创建文件搜索

package com.iteye.com;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 * 创建一个文件搜索的类
 * 
 * @author Administrator
 * 
 */
public class FileShowUI extends JFrame {
	//文件路径
	private String name;
	//默认结果是0
	private int result= 0;
	//设置多行文本
	private JTextArea area;


	public static void main(String[] args) {
		FileShowUI Fui = new FileShowUI();
		Fui.showui();

	}

	// 设置绘制窗体的方法
	public void showui() {
		this.setTitle("文件搜索");
		this.setSize(600, 500);
		// //设置居中
		// this.setLocationRelativeTo(null);
		this.setResizable(false);
		// 设置布局为空
		this.setLayout(null);

		// 创建容器,位置,颜色,
		JPanel panel = new JPanel();
		panel.setBounds(0, 0, 600, 500);
		panel.setBackground(Color.LIGHT_GRAY);
		// 设置多行文本
		 area = new JTextArea(24, 48);
		// 添加输入框
		final JTextField field = new JTextField(10);

		// 设置按钮
		JButton search = new JButton("查找");
		JButton start = new JButton("开始搜索");
		JButton end = new JButton("结束搜索");

		// 将组件添加到容器中
		panel.add(area);
		panel.add(field);
		panel.add(search);
		panel.add(start);
		panel.add(end);

		// 将容器添加到窗体中
		this.add(panel);

		// panel的布局位置
		this.add(panel, BorderLayout.NORTH);
		this.add(area, BorderLayout.CENTER);

		// 将多行文本添加到滚动条中
		JScrollPane pane = new JScrollPane(area);
		pane.setPreferredSize(new Dimension(550, 400));
		panel.add(pane);

		// 设置窗体显示
		this.setVisible(true);
		//得到窗体上的画布
		Graphics g = panel.getGraphics();
		
		//添加监听器
		ActionListener lis = new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				//获取输入框中的字符串
				name = field.getText();
				int count =countFile(name);
				if(count == 0){
					area.append("您输入的文件不存在\n");
					System.out.println("您输入的文件不存在");
				}else{
					
					area.append("文件有"+count+"个\n");
				}
				area.append("您所查找的文件总数为"+count+"个");
				System.out.println("您所查找的文件总数为"+count+"个");
				
			}
		};
		//将搜索按钮添加监听器
		start.addActionListener(lis);
		
			
			}
	
	//定义判断文件的方法
	public int countFile(String name){
		//创建file的对象
		 File file  = new File(name);
		 //判断路径是否存在
		  if(!file.exists()){
			  System.out.println("提供的路径不存在!");
		  return 0;
		  }
		  //将的得到的路径存储到数组中
		  File[] fs =file.listFiles();
		  
		  //判断得到的是否是一个文件
		  if(fs==null){
			  System.out.println("提供的路径不是一个标准文件");
			  return 0;
		  }
		  
		  
		  //遍历数组
		  for(int i =0;i<fs.length;i++){
			  //将遍历的数组赋给f
			  File f = fs[i];
			  //取得文件的路径
			  String str = f.getAbsolutePath();
			  //将文件路径添加到多行文本区域中
		      area.append(str+"\n");
		      
		  //判断是不是文件
		  if(f.isFile()){
			  result++;
//			  System.out.println("找到文件"+str);
			  //如果是目录就用递归来做
			  
		  }else if(f.isDirectory()){
			  result +=countFile(str);
		  }
		 }	 	 
		
		return result;		
	}
}
	
	

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值