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

📄 wenjian.java

📁 简单的二级文件系统 软件说明: 开发环境:windows操作系统 jdk1.60 开发工具: jbulider2006 软件简要说明:本软件使用的是java编程语言。基本实现对系统的所有文件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package file;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.sql.*;
import java.text.*;

import javax.swing.*;
import javax.swing.table.*;
import java.awt.Rectangle;


public class wenjian extends JFrame implements ActionListener,ItemListener
{
    int aa = 1500;
    int num = 0;
    long[] time =new long[aa];
    String[] n = new String[aa];
    String[] way = new String[aa];
    long[] large = new long[aa];
    String[]leixing=new String[aa];
     int rowI=0;
     int loop=0;


   JComboBox jComboBox1 = new JComboBox();///////控件定义
   JLabel jLabel1 = new JLabel();

   Object[] header={"名字","位置","大小","类型","创建时间"};
   DefaultTableModel model = new DefaultTableModel(header, 500);
   //JTable jtb = new JTable(500,5);/////////////定义表
   JTable jtb=new JTB().jj();


    JButton jButton1 = new JButton();
    JButton jButton6 = new JButton();

   JPopupMenu popup = new JPopupMenu();///////////右键菜单的定义
   JMenuItem item1 = new JMenuItem("打开");
   JMenuItem item2 = new JMenuItem("复制到...");
   JMenuItem item3 = new JMenuItem("删除");
   JMenuItem item4 = new JMenuItem("重命名");
    JToggleButton jToggleButton1 = new JToggleButton();
    JButton jButton2 = new JButton();
    JButton jButton3 = new JButton();
    public wenjian(String gg)//////////////////构造函数
    {
          super(gg);
         this.setSize(1020,735);


        try
        {
            jbInit();//////////调用jbInit()函数
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }



    public static void main(String[] args)///////////主函数
    {
         wenjian wenjian =new wenjian("文件管理器 作者:04级计算机4班 陈子凌");
    }



    private void jbInit() throws Exception//////////////////初始化函数
    {
        this.getContentPane().setLayout(null);
        this.getContentPane().setBackground(Color.white);
        jComboBox1.addActionListener(new wenjian_jComboBox1_actionAdapter(this));//////注册监听
        jButton1.setBounds(new Rectangle(1, 52, 129, 23));
        jButton1.setText("返回上层目录");
        jButton1.addActionListener(new wenjian_jButton1_actionAdapter(this));
        jButton6.addActionListener(new wenjian_jButton6_actionAdapter(this));
        jButton6.setBounds(new Rectangle(924, 6, 81, 23));
        jButton6.setText("转到");
        jComboBox1.setBounds(new Rectangle(40, 6, 880, 23));//////////jCombox
        jComboBox1.setEditable(true);
        jLabel1.setText("地址");
        jLabel1.setBounds(new Rectangle(5, 10, 42, 15));

        item1.addActionListener(this);//右键菜单的注册监听
        item2.addActionListener(this);
        item3.addActionListener(this);
        item4.addActionListener(this);

        File[] roots = File.listRoots();
         for (int i = 0; i < roots.length; i++)

          {
            jComboBox1.addItem(roots[i].getPath());

            }
            //String str = (String) jComboBox1.getSelectedItem();
            setTable();///////显示表

        jtb.addMouseListener(new MouseAdapter()////////////////////////表的注册监听
         {
           public void mouseClicked(MouseEvent e)
             {
                 rowI = jtb.rowAtPoint(e.getPoint());
                 if (e.getButton() == MouseEvent.BUTTON3)//////////右键菜单
                 {
                     popup.add(item1);
                     popup.add(item2);
                     popup.add(item3);
                     popup.add(item4);
                     popup.show(jtb,e.getX(),e.getY());
                 }

                if(e.getClickCount()==2)//////////////////////////双击事件
               {

                   rowI = jtb.rowAtPoint(e.getPoint());
                    if(jtb.getValueAt(rowI, 3).equals(null))
                 {
                     javax.swing.JOptionPane.showMessageDialog(null, "没有内容","错误",javax.swing.JOptionPane.ERROR_MESSAGE);

                 }


                   if(jtb.getValueAt(rowI, 3).equals("文件夹"))
                   {
                       jComboBox1.addItem(jtb.getValueAt(rowI, 1));
                       jComboBox1.setSelectedItem(jtb.getValueAt(rowI, 1));
                       setTable(); ///////显示表
                    }
                   else
                       {

                           String s1 = "cmd /E:ON /c start ";
                           String s2 =(String)jtb.getValueAt(rowI, 1);

                         try {
                               Process process = Runtime.getRuntime().exec(s1 +
                                       s2);
                           } catch (Exception ex)
                           {
                               ex.printStackTrace();
                           }
                       }
                   }

                if(e.getClickCount()==1)
               {

                   int rowI = jtb.rowAtPoint(e.getPoint());

                  if(jtb.getValueAt(rowI, 3).equals(null))
                {
                    javax.swing.JOptionPane.showMessageDialog(null, "没有内容","错误",javax.swing.JOptionPane.ERROR_MESSAGE);

                }
            }

           }
       }
       );
        JScrollPane jScrollPane1 = new JScrollPane(jtb);//////////////////////////////
        jScrollPane1.setBounds(new Rectangle(3, 81, 1010, 600));
        jToggleButton1.setText("刷新");
        jToggleButton1.setBounds(new Rectangle(142, 52, 117, 23));
        jToggleButton1.addActionListener(new
                                         wenjian_jToggleButton1_actionAdapter(this));
        jButton2.setBounds(new Rectangle(276, 52, 163, 23));
        jButton2.setText("新建文件夹");
        jButton2.addActionListener(new wenjian_jButton2_actionAdapter(this));
        jButton3.setBounds(new Rectangle(472, 54, 130, 23));
        jButton3.setText("新建文件");
        jButton3.addActionListener(new wenjian_jButton3_actionAdapter(this));
        this.getContentPane().add(jComboBox1);
        this.getContentPane().add(jButton6);
        this.getContentPane().add(jButton1);
        this.getContentPane().add(jLabel1);
        this.getContentPane().add(jScrollPane1);
        this.getContentPane().add(jToggleButton1);
        this.getContentPane().add(jButton2);
        this.getContentPane().add(jButton3);
    }


    private void setTable() ////////////////表的显示
    {

       String str = (String) jComboBox1.getSelectedItem();
        File f = new File(str);
       if(f.isFile())
      {
       if(loop<=0)
       {
          String s1 = "cmd /E:ON /c start ";
           String s2 =str;

                       try {
                             Process process = Runtime.getRuntime().exec(s1 +
                                     s2);
                             loop++;
                             jComboBox1.setSelectedItem(f.getParent());



                         } catch (Exception ex)
                         {
                             ex.printStackTrace();
                         }
           }
       else
       {
           System.out.print("erro");
           javax.swing.JOptionPane.showMessageDialog(null,"erro");
       }



      }
       else {
           File[] files = f.listFiles();
           try {
               DefaultTableModel model = new DefaultTableModel(header,
                       files.length); //////
               jtb.setModel(model);
               jtb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
               jtb.getColumn(header[0]).setPreferredWidth(202);
               jtb.getColumn(header[1]).setPreferredWidth(202);
               jtb.getColumn(header[2]).setPreferredWidth(202);
               jtb.getColumn(header[3]).setPreferredWidth(202);
               jtb.getColumn(header[4]).setPreferredWidth(202);
               jtb.isCellEditable(0, 0);

               for (int i = 0; i < files.length; i++) {

                   if (files[i].isDirectory()) {
                       leixing[i] = "文件夹";
                       jtb.setValueAt(leixing[i], i, 3); //////////显示类型

                   } else {
                       large[i] = files[i].length(); /////获取大小
                       String lar;
                       if (large[i] < 1024) {
                           lar = large[i] + "字节";
                       } else if (large[i] < 1024 * 1024) {
                           lar = large[i] / 1024 + "KB";
                       } else {
                           lar = large[i] / (1024 * 1024) + "MB";
                       }

                       leixing[i] = "文件";
                       jtb.setValueAt(leixing[i], i, 3); /////显示类型
                       jtb.setValueAt(lar, i, 2); ////显示大小
                   }
                   n[i] = files[i].getName(); ///////////////获取文件名
                   way[i] = files[i].getAbsolutePath(); /////获取文件路径
                   time[i] = files[i].lastModified(); /////获取文件修改时间
                   SimpleDateFormat formatter = new SimpleDateFormat(
                           "yyyy-MM-dd HH:MM:SS");
                   String tsForm = formatter.format(new Date(time[i]));

                   jtb.setValueAt(n[i], i, 0); /////////显示文件名字
                   jtb.setValueAt(way[i], i, 1); ///////显示路径
                   jtb.setValueAt(tsForm, i, 4); //////显示修改时间

               }

           } catch (Exception ex) {
               javax.swing.JOptionPane.showMessageDialog(null, "找不到该目录或地址的地址文件", "错误",
                       javax.swing.JOptionPane.
                       ERROR_MESSAGE);

               jComboBox1.setSelectedItem("");


           }
       }



}


 /**
     * del
     */
    private void del(File f)///////////////////////////////////////////////删除函数
    {
        if (f.isDirectory())
        {
            File[] flist = f.listFiles();

            if (f.listFiles().length <= 0||flist==null)
            {

                f.delete();

            }
            else
            {

                for (int i = 0; i < flist.length; i++)
                {
                    if (flist[i].isDirectory())
                    {
                       del(flist[i]);
                    }

                    else
                    {
                        flist[i].delete();

                    }
                }

            }
        }
        else
           {
               f.delete();

           }
           f.delete();

    }







    /**************************以下为事件按处理
    */

    public void jComboBox1_actionPerformed(ActionEvent e)/////////////处理jComboBox1
     {

          setTable();
     }


    public void jButton6_actionPerformed(ActionEvent e) //////////////////////处理转到
    {


         loop=0;
        String str = (String) jComboBox1.getSelectedItem();

                 if(str.equals(""))
                {
                    javax.swing.JOptionPane.showMessageDialog(null, "请输入地址", "错误",
                                                             javax.swing.JOptionPane.
                                                             ERROR_MESSAGE);

                }

   }

    public void jButton1_actionPerformed(ActionEvent e)////////////////////////处理返回上层目录
    {
        String str = (String) jComboBox1.getSelectedItem();
        if (str.length() < 4) {
            javax.swing.JOptionPane.showMessageDialog(null, "已经是顶层目录", "错误",
                                                      javax.swing.JOptionPane.
                                                      ERROR_MESSAGE);
        } else {
            File f = new File(str);
            String s = f.getParent();
            if (s.equals(null)) {
                javax.swing.JOptionPane.showMessageDialog(null, "已经是顶层目录", "错误",
                        javax.swing.JOptionPane.ERROR_MESSAGE);

            }

            else {
                jComboBox1.setSelectedItem(s);
                setTable();

            }

⌨️ 快捷键说明

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