Java课程设计:文本文件管理系统

目录

1. 需求分析
2. 数据库建立
3. 需求实现
	* 数据库的连接
	* 数据库功能的实现
	* gui的建立	 	

如果需要源码,可以到下面的连接下载
https://download.csdn.net/download/AJI12/20401417?spm=1001.2014.3001.5501

需求分析

图形化界面(GUI),编写一个文本文件信息统计软件
	(1)显示打开文件的基本信息(文件名、路径、文件大小、最后修改日期)
	(2)显示文件内容统计信息(行、字/单词数)
	(3)显示文件内容
	(4)按照文件大小或最后修改时间排序
	(5)按照文件名或者文件内容包含关键字模糊查询
 	1. 显示打开文件基本信息:显示查询到的文件基本信息如:(文件名、路径、文件大小、最后修改日期)等,将其显示到文本框中,用户需要将文件的绝对路经输入到系统中,然后点击查询。
	2. 显示文件内容统计信息:显示查询到的文件基本信息如:(行、字/单词数)等
	将其显示到文本框中,用户需要将文件的绝对路经输入到系统中,然后点击查询。
	3. 显示文件内容:将文件内容显示到系统的文本框中。用户需要将文件的绝对路经输入到系统中,然后点击显示。
	4. 按照文件大小或最后修改时间排序:用户点击排序,系统将调用数据库对里面的数据进行排列,通过冒泡排序将文件按大小从小到大排列,并以List的形式输出到JFrame的文本框中。
	5. 按照文件名或者文件内容包含关键字模糊查询:用户点击按文件名查询,然后输入要查询的文件名,系统将调用数据库对里面的数据进行查找,通过对数据库中的数据进行查找,若找到将输出到文本框中。

数据库的建立

由于题目需求只有一个按文件名查询文件基本信息和排序
因此我们只需建立一个表BaseInfo:

CREATE TABLE `baseinfo` (
  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件名',
  `path` varchar(255) DEFAULT NULL COMMENT '路径名',
  `size` double DEFAULT NULL COMMENT '文件大小',
  `LastData` varchar(255) DEFAULT NULL COMMENT '最后修改日期',
  PRIMARY KEY (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8

需求的实现

	* 数据库的连接
	* 数据库功能的实现
	* gui的建立	 	

数据库的连接

这里我使用的数据库是mysql8.0,连接工具为Jdbc和utils,具体jar包大家可以到官网下载。
JdbcUtils.java

package com.utils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.utils.JdbcUtils;

public class JdbcUtils {
	/**
     *  1. 定义成员变量DataSourse
     */
    private static DataSource ds;
    static {
        try {
            //1. 加载配置文件
            Properties pro = new Properties();
            pro.load(JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
            //2.获取DataSource
            ds = DruidDataSourceFactory.createDataSource(pro);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 获取资源
     * @return ds.getConnection()
     */
    public static Connection getConnection() throws SQLException{
        return ds.getConnection();
    }
    /**
     * 释放资源
     */
    public static void close(ResultSet rs, Statement stmt, Connection conn){
        if (rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (stmt != null){
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 获取连接池方法
     * @return ds
     */
    public static DataSource getDataSource(){
        return ds;
    }
}

druid.properties

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///db6
username=root
password=1234
initialSize=5
maxActive=10
maxWait=3000

数据库功能的实现

这里使用的是JDBC和JDBCTemplate实现对数据库的操作
具体jar大家可以到网站上下载

FileInfoAdd.java
对数据库表的数据实例化

package com.domain;


public class FileInfoAdd {
	private String name;
	private String path;
	private Double size;
	private String lastData;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPath() {
		return path;
	}
	public void setPath(String path) {
		this.path = path;
	}
	public Double getSize() {
		return size;
	}
	public void setSize(Double size) {
		this.size = size;
	}
	
	public String getLastData() {
		return lastData;
	}
	public void setLastData(String lastData) {
		this.lastData = lastData;
	}
	@Override
	public String toString() {
		return "FileInfoAdd [ name=" + name + ", path=" + path + ", size=" + size + ", lastData="
				+ lastData + "]";
	}
	
}

SelectInfo.java
通过文件地址查询文件基本信息

package com.domain;

import java.io.File;
import java.sql.Date;
import java.text.SimpleDateFormat;

public class SelectInfo {
	public static void showFileMessage(String fileName) {
		//根据指定路径创建一个File对象file
		 File file = new File(fileName);
    	 //获取该File对象的名字
		 String name = file.getName();
    	 System.out.println("文件名为:"+ name);
    	 //获取该File对象的相对路径
    	 String path = file.getPath();
    	 System.out.println("路径为:"+ path );	
    	 
    	 //获取此文件的最后修改时间
    	 Date date = new Date(file.lastModified());
    	 //设置时间格式
    	 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    	 //将获取的时间转换成设置的格式
    	 String dateTime=df.format(date);
    	 //输出此文件的最后修改时间
    	 System.out.println("此文件的最后修改时间为:"+dateTime );
     }
    /**
     * 获取文件长度
     * @param file
     * @return size
     */
    public static long getFileSize(String fileName) {
    	File file = new File(fileName);
    	return file.length();
    }
    /**
     * 获取文件名
     * @param fileName
     * @return fileName
     */
    public static String getFileName(String fileName) {
    	 File file = new File(fileName);
    	 return file.getName();
    }
    /**
     * 获取文件路径
     * @param file
     * @return path
     */
    public static String getFilePath(String fileName) {
    	File file = new File(fileName);
    	return file.getPath();
    }
    /**
     * 获取文件路径
     * @param file
     * @return dataTime
     */
    public static String getLastData(String fileName) {
    	File file = new File(fileName);
      	 //获取此文件的最后修改时间
	   	 Date date = new Date(file.lastModified());
	   	 //设置时间格式
	   	 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
	   	 //将获取的时间转换成设置的格式
	   	 String dateTime=df.format(date);
	   	 //输出此文件的最后修改时间
	   	 return dateTime;
    }
}

JdbcTamplateDemo.java

package com.jdbcTemplate;

import java.util.List;
import java.util.Map;


import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import com.domain.FileInfoAdd;
import com.domain.SelectInfo;
import com.utils.JdbcUtils;


public class JdbcTamplateDemo {
	
	private static JdbcTemplate template = new JdbcTemplate(JdbcUtils.getDataSource());
	/**
	 * 将信息添加到数据库
	 * @param fileName
	 */
	public static void addData(String fileName) {
		String name = SelectInfo.getFileName(fileName);
		String path = SelectInfo.getFilePath(fileName);
		long size = SelectInfo.getFileSize(fileName);
		String lastData = SelectInfo.getLastData(fileName);
		String sql = "insert into baseinfo (name,path,size,lastdata) values (?,?,?,?)";
		template.update(sql,name,path,size,lastData);
	}
	/**
	 * 按文件名查询
	 */
	public static void showData(String sName) {
		String sql = "select * from baseinfo where name=?"; 
		Map<String, Object> map = template.queryForMap(sql,sName);
		System.out.println(map);
	}
	/**
	 * 排序
	 */
	public static void sort() {
		String sql = "select * from baseinfo order by size";
	    List<FileInfoAdd> list = template.query(sql,new BeanPropertyRowMapper<FileInfoAdd>(FileInfoAdd.class));
	    for (FileInfoAdd emp:list){
	    	System.out.println(emp);
	    }
	}
	/**
	 * 设置jTable的行内容
	 * @return hang
	 */
	public static String[] gethang(String fileName) {
		String[] hang = new String[4];
		String sql1 = "select path from baseinfo where name=?";
		String sql2 = "select size from baseinfo where name=?";
		String sql3 = "select lastData from baseinfo where name=?";
		String path = template.queryForObject(sql1, String.class,fileName);
		double size = template.queryForObject(sql2, double.class,fileName);
		String lastData = template.queryForObject(sql3, String.class,fileName);
		hang[0] = fileName;
		hang[1] = path;
		hang[2] = size+"";
		hang[3] = lastData;
		return hang;
	}
	public static String getHangAll() {
		String sql = "select * from baseinfo"; 
		List<FileInfoAdd> list = template.query(sql,new BeanPropertyRowMapper<FileInfoAdd>(FileInfoAdd.class));
		return JdbcTamplateDemo.listToString03(list);
	}
	/**将Map内容转成String*/
	public static String mapToString(Map<String, Object> mapParam){
		if(mapParam == null){
			return null;
		}
		String result="";
		StringBuilder stringBuilder = new StringBuilder();
		for(Map.Entry<String, Object> entry : mapParam.entrySet()){   
			Object value=entry.getValue();
			if(value instanceof String){
				stringBuilder.append(result);
				stringBuilder.append(entry.getKey());
				stringBuilder.append("'");
				stringBuilder.append(entry.getValue());
				stringBuilder.append("'");
			}else{
				stringBuilder.append(result);
				stringBuilder.append(entry.getKey());
				stringBuilder.append(entry.getValue());
				stringBuilder.append("'");
			}
		}
		result = stringBuilder.toString();
		if(!isEmpty(result)){
			result=result.substring(0, result.length()-1);
		}
		return result;
	}
	/**
	 * 将list 转为string
	 * @param list
	 * @return
	 */
	@SuppressWarnings({ "unused", "null" })
	public static String listToString03(List<FileInfoAdd> list){

		if(null ==list && list.size()<=0){
			System.out.println("list内容为空!");
		}else{
			
			StringBuilder sb = new StringBuilder();
			String resultString = "";
			
			for(int i=0;i<list.size();i++){
				if(i<list.size()-1){
					sb.append(list.get(i));
					sb.append(",");
				}else{
					sb.append(list.get(i));
				}
			}	
			resultString = sb.toString();
			return resultString;
		}
		return null;
	}

	private static boolean isEmpty(String result) {
		// TODO Auto-generated method stub
		return false;
	}
}

gui的实现

Start.java
菜单界面,也是程序运行的界面

package com.gui;

import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;


public class Start extends JMenuBar {
	/**
	 *开始菜单 
	 */
	private static final long serialVersionUID = 1L;
	public Start() {
		// TODO Auto-generated constructor stub
		    add(createFileMenu()); 
		    //添加“文件”菜单
	        add(createEditMenu());  
	        //添加“编辑”菜单
	        setVisible(true); 
	   }
   public static void main(String[] args) {
	     JFrame frame=new JFrame("菜单栏");
	     JLabel jlimage = new JLabel();
	     ImageIcon icon = new ImageIcon("./img/fileInfo.png");
	     icon.setImage(icon.getImage().getScaledInstance(540, 713, Image.SCALE_DEFAULT));
	     jlimage.setIcon(icon);
	     frame.add(jlimage);
	     frame.setSize(540,713);
	     frame.setJMenuBar(new Start());
	     frame.setVisible(true);
   }
	 //定义“简介”菜单
   private JMenu createFileMenu()
   {
       JMenu menu=new JMenu("显示(F)");
       //设置快速访问符
       menu.setMnemonic(KeyEvent.VK_F);
       JMenuItem item=new JMenuItem("文件基本信息");
	   item.addActionListener(new ActionListener() {		
	    	@Override
			public void actionPerformed(ActionEvent e) {
	    		ShowFileInfo.runFileInfo();
	    	}
	   });
       menu.add(item);
       item=new JMenuItem("文件内容统计信息");
	   item.addActionListener(new ActionListener() {		
	    	@Override
			public void actionPerformed(ActionEvent e) {
	    		FileContent.runFileContent();
	    	}
	   });
       menu.add(item);
       item=new JMenuItem("文件内容");
	   item.addActionListener(new ActionListener() {		
	    	@Override
			public void actionPerformed(ActionEvent e) {
	    		ReadFileContent.runReadFileCentent();
	    	}
	   });
       menu.add(item);
       menu.addSeparator();
       item=new JMenuItem("退出");
       item.addActionListener(new ActionListener() {
		
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
       });
       menu.add(item);
       return menu;
   }
   //定义“编辑”菜单
   private JMenu createEditMenu()
   {
       JMenu menu=new JMenu("查询(E)");
       menu.setMnemonic(KeyEvent.VK_E);
       JMenuItem item=new JMenuItem("按文件大小排序(U)",KeyEvent.VK_U);
	   item.addActionListener(new ActionListener() {		
	    	@Override
			public void actionPerformed(ActionEvent e) {
	    		SortForSize.runSortForSize();
	    	}
	   });
       menu.add(item);
       menu.addSeparator();
       item=new JMenuItem("按文件名查询(U)",KeyEvent.VK_T);
	   item.addActionListener(new ActionListener() {		
	    	@Override
			public void actionPerformed(ActionEvent e) {
	    		SelectMessage.runShowMessage();
	    	}
	   });
       menu.add(item);
       return menu;
   }
}

FileContent.java
显示文件内容信息,如行数,字数

package com.gui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

public class FileContent {
	public static void  showFileContent() {
		JFrame frame = new JFrame("显示文件统计信息");
		JPanel panel = new JPanel();
		panel.add(new JLabel("输入文件路径:"));
		JTextField text = new JTextField(15);
		panel.add(text);
		JButton button = new JButton("显示");
		button.addActionListener(new ActionListener() {		
	    	@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public void actionPerformed(ActionEvent e) {
	    		String fileName = text.getText();
	    		File file = new File(fileName);
		       	//获取该File对象的名字
		   		String name = file.getName();
		        try {//try代码块,当发生异常时会转到catch代码块中
		        	//读取指定的文件      	
		        	InputStreamReader read = new InputStreamReader(new FileInputStream(fileName),"utf-8"); 
		            BufferedReader in = new BufferedReader(read);//可用于读取指定文件     
		            String str=null;//定义一个字符串类型变量str
		            int i = 0;//定义一个整型变量,用于统计行数
		            int c = 0;//定义一个整型变量,用于统计字符数
		            int d = 0;//定义一个整型变量,用于统计字节数
		            while ((str = in.readLine())!= null) {//readLine()方法, 用于读取一行,只要读取内容不为空就一直执行
		            	i++;//每循环一次就进行一次自增,用于统计文本行数
		            	c += str.length();//用于统计总字符数
		            	byte[] bytes=str.getBytes();//求出该行的字节数组
		            	d += bytes.length;//用于统计总字节数
		            }
		            in.close();//关闭流
			        Vector rowData,columnNames;
				    columnNames=new Vector();
				    //设置列名
					columnNames.add("文件名");
					columnNames.add("文件行数");
					columnNames.add("文件字/单词数");
					columnNames.add("字节数");

				
					rowData = new Vector();
					Vector hang=new Vector();
					hang.add(name);
					hang.add(i+"");
					hang.add(c+"");
					hang.add(d+"");

					
					//加入到rowData
					rowData.add(hang);

				    JTable jt= new JTable(rowData,columnNames);
					JScrollPane jsp= new JScrollPane(jt);
			       	panel.add(jsp);
			       	frame.add(panel);
					frame.setSize(540,713);
					frame.setVisible(true);
					frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
		        } catch (IOException e1) {//当try代码块有异常时转到catch代码块
		        	e1.printStackTrace();//printStackTrace()方法是打印异常信息在程序中出错的位置及原因
		        }
	    	}
	    });
		panel.add(button);
		frame.add(panel);
		frame.setSize(540,713);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
	}
	public static void runFileContent() {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
            	FileContent.showFileContent();
            }
        });
	}
}

ReadFileContent.java
将文件内容显示到gui的面板上

package com.gui;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ReadFileContent {
	/**
	 * 显示文件内容到文本框
	 */
	public  static void showReadFileContent() {
		JFrame frame = new JFrame("显示文件内容");
		JPanel panel = new JPanel();
		panel.add(new JLabel("输入文件路径:"));
		JTextField text = new JTextField(20);
		panel.add(text);
		JButton button = new JButton("显示");
		button.addActionListener(new ActionListener() {		
		   @Override
		   public void actionPerformed(ActionEvent e) {
			   frame.setLayout(new BorderLayout());	
			   // 读取文件路径
				String strpath = text.getText();		
				// 读取文本中全部路径
				String res = readFile(strpath);
				JTextArea jtf = new JTextArea(res);
				jtf.setLineWrap(true);
				jtf.setWrapStyleWord(true); 
				frame.add(jtf,BorderLayout.SOUTH);
				frame.setSize(540,713);
				frame.setVisible(true);
		   }
		});
		panel.add(button);
		frame.add(panel,BorderLayout.NORTH);
		frame.setSize(540,713);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
	}

	/*
	 * *读取文件方法
	 */
	@SuppressWarnings("resource")
	public static String readFile(String strpath) {
		System.out.println("readFile:" + strpath);
		String res = null;
		StringBuilder sb = new StringBuilder();
		try {
			File file = new File(strpath);
			InputStreamReader br = new InputStreamReader(new FileInputStream(file), "UTF-8");
			BufferedReader reader = new BufferedReader(br);
			String str;
			while ((str = reader.readLine()) != null) {
				sb.append(str + "\n");
			}
			res = sb.toString();
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return res;
	}
	/**
	 * 运行
	 */
	public static void runReadFileCentent() {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
            	ReadFileContent.showReadFileContent();
            }
        });
	}
}

SelectMessage.java
输入文件名从数据库中查询文件基本信息

package com.gui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import com.jdbcTemplate.JdbcTamplateDemo;
public class SelectMessage {
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static void showMessage() {
		JFrame frame = new JFrame("显示文件基本信息");
		JPanel panel = new JPanel();
		panel.add(new JLabel("输入文件名称:"));
		JTextField text = new JTextField(15);
		panel.add(text);
		JButton button = new JButton("查询");
	    button.addActionListener(new ActionListener() {		
	    	@Override
			public void actionPerformed(ActionEvent e) {
	    		String[] hang1 = new String[4];
	    		hang1 = JdbcTamplateDemo.gethang(text.getText());
	    		Vector hang=new Vector();
	    		hang.add(hang1[0]);
	    		hang.add(hang1[1]);
	    		hang.add(hang1[2]);
	    		hang.add(hang1[3]);
	    	}
	    });
	    
	    Vector rowData,columnNames;
	    columnNames=new Vector();
	    //设置列名
		columnNames.add("文件名");
		columnNames.add("文件路径");
		columnNames.add("文件大小");
		columnNames.add("最后修改时间");
		rowData = new Vector();
		//rowData可以存放多行,开始从数据库里取
		String[] hang1 = new String[4];
		hang1 = JdbcTamplateDemo.gethang("card.txt");
		Vector hang=new Vector();
		hang.add(hang1[0]);
		hang.add(hang1[1]);
		hang.add(hang1[2]);
		hang.add(hang1[3]);
		
		//加入到rowData
		rowData.add(hang);

	    JTable jt= new JTable(rowData,columnNames);
		JScrollPane jsp= new JScrollPane(jt);
		panel.add(button);
		panel.add(jsp);
		frame.add(panel);
		frame.setSize(540,713);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
	}
	
	public static void runShowMessage() {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
            	SelectMessage.showMessage();
            }
        });
	}

}

ShowFileInfo.java
输入文件路径,显示文件基本信息

package com.gui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import com.jdbcTemplate.JdbcTamplateDemo;



public class ShowFileInfo {
	/**
	 * 显示基本信息
	 */
	public static void fileInfo() {
		JFrame frame = new JFrame("显示基本信息");
		JPanel panel = new JPanel();
		panel.add(new JLabel("输入文件路径:"));
		JTextField text = new JTextField(15);
		panel.add(text);
		JButton button = new JButton("显示");
		button.addActionListener(new ActionListener() {		
	    	@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public void actionPerformed(ActionEvent e) {
	    		String fileName = text.getText();
	    		File file = new File(fileName);
		       	//获取该File对象的名字
		   		String name = file.getName();
		       	//获取该File对象的相对路径
		       	String path = file.getPath(); 
		       	//获取此文件的最后修改时间
		       	String size = file.length() + "";
		       	Date date = new Date(file.lastModified());
		       	//设置时间格式
		       	SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
		       	//将获取的时间转换成设置的格式
		       	String dateTime=df.format(date);
		       	//输出此文件的最后修改时间
		       	JdbcTamplateDemo.addData(fileName);
		       	
		        Vector rowData,columnNames;
			    columnNames=new Vector();
			    //设置列名
				columnNames.add("文件名");
				columnNames.add("文件路径");
				columnNames.add("文件大小");
				columnNames.add("最后修改时间");
				
			
				rowData = new Vector();
				Vector hang=new Vector();
				hang.add(name);
				hang.add(path);
				hang.add(size);
				hang.add(dateTime);
				
				//加入到rowData
				rowData.add(hang);

			    JTable jt= new JTable(rowData,columnNames);
				JScrollPane jsp= new JScrollPane(jt);
		       	panel.add(jsp);
		       	frame.add(panel);
				frame.setSize(540,713);
				frame.setVisible(true);
				frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
	    	}
	    });
		panel.add(button);
		frame.add(panel);
		frame.setSize(540,713);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
	}
	public static void runFileInfo() {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
            	ShowFileInfo.fileInfo();
            }
        });
	}
}

SortForSize.java
在数据库中按文件大小进行排序,从小到大

package com.gui;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;

import com.jdbcTemplate.JdbcTamplateDemo;

public class SortForSize {
	/**
	 * 按照文件大小排序
	 */
	public static void showSortForSize() {
		JFrame frame = new JFrame("按文件大小排序");
		JPanel panel = new JPanel();
		panel.add(new JLabel("显示排序后的文件"));
		JButton button = new JButton("显示");
		
		button.addActionListener(new ActionListener() {		

			public void actionPerformed(ActionEvent e) {
				
				JTextArea text = new JTextArea(JdbcTamplateDemo.getHangAll());
				text.setLineWrap(true);
				text.setWrapStyleWord(true); 
				frame.add(text,BorderLayout.CENTER);
				frame.setSize(540,713);
				frame.setVisible(true);
				frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
	    	}
	    });
		
		panel.add(button);
		frame.add(panel,BorderLayout.SOUTH);
		frame.setSize(540,713);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
	}
	/**
	 * run
	 */
	public static void runSortForSize() {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
            	SortForSize.showSortForSize();
            }
        });
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌白羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值