资源管理器2

Jun 07, 2016 pm 03:43 PM
package Pengurus sumber

package org.accp.explor; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExce

Salin selepas log masuk

 

package org.accp.explor;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.sql.Date;

import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;

public class Test1 extends DefaultMutableTreeNode {

 
 private static final long serialVersionUID = 6999685634761062308L;

 private class MyFile {//这个内部类的用处在于在JTree节点的select发生时,对所选文件进行格式转化
  private File file;

  public MyFile(File file) {
   this.file = file;
  }

  public String toString() {
   String name = file.getName().trim();
   if (name.length() == 0)
    name = file.getAbsolutePath().trim();
   return name;
  }

 }

 

 DefaultMutableTreeNode treeRoot;

 DefaultTableModel tableModel;

 JTable table;

 DefaultMutableTreeNode parent;

 Object[][] list = { {} };

 

 public void treeMake() throws UnknownHostException { // 添加机器码&&构造界面
  InetAddress local = InetAddress.getLocalHost();
  treeRoot = new DefaultMutableTreeNode(local.getHostName());
  final JTree tree = new JTree(treeRoot);
  JScrollPane scrolltree = new JScrollPane(tree);
  scrolltree.setPreferredSize(new Dimension(200, 300));

  String[] row = { "文件", "类型", "最后修改日期" };

  tableModel = new DefaultTableModel(list, row);
  table = new JTable(tableModel);
  JScrollPane scrollTable = new JScrollPane(table);
  scrollTable.setPreferredSize(new Dimension(500, 500));
 
  MenuBar meb=new MenuBar();
 Menu menuFile=new Menu("文件(F)");
 Menu menuEdit=new Menu("编辑(E)");
 Menu menuLook=new Menu("查看(V)");
 
 meb.add(menuFile);
 MenuItem miFile=new MenuItem("打开");
 menuFile.add(miFile);
 meb.add(menuEdit);
 MenuItem miEdit=new MenuItem("复制");
 menuEdit.add(miEdit);
 meb.add(menuLook);
 MenuItem miLook=new MenuItem("工具栏");
 menuLook.add(miLook);
 
  JFrame jf = new JFrame();
  jf.add(BorderLayout.WEST, scrolltree);
  jf.add(BorderLayout.CENTER, scrollTable);
  jf.setSize(600, 600);
  jf.setVisible(true);
  jf.setMenuBar(meb);
  jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  // 添加电脑本地硬盘
  for (char i = 'c'; i    String path = i + ":/";
   if (((new File(path)).exists())) {
    DefaultMutableTreeNode diskNode = new DefaultMutableTreeNode(
      new MyFile(new File(path)));
    treeRoot.add(diskNode);
    readfiles(new File(path), diskNode);
   }
  }

  tree.addTreeSelectionListener(new TreeSelectionListener() {//添加listener
   public void valueChanged(TreeSelectionEvent arg0) {
    // TODO 自动生成方法存根

    TreePath path = tree.getSelectionPath();
    if (path == null)
     return;
    DefaultMutableTreeNode selectnode = (DefaultMutableTreeNode) path
      .getLastPathComponent();

    if (!selectnode.isLeaf()) {
     // 这里加上类型判断
     if (!(selectnode.getUserObject() instanceof MyFile)) {
      return;
     }
     File file_select = ((MyFile) selectnode.getUserObject()).file;
     // 读取文件夹下文件添加下层节点
     readfiles(file_select, selectnode);
     DefaultMutableTreeNode firstchild = (DefaultMutableTreeNode) selectnode
       .getFirstChild();
     selectnode.remove(firstchild);
     tableModel.setRowCount(0);
     File[] fileList = file_select.listFiles();
     list = fu(fileList);

     for (int i = 0; i       tableModel.addRow(list[i]);
     }

    }
    else {

     tableModel.setRowCount(0);
     try {
      File file_select = ((MyFile) selectnode.getUserObject()).file;
      String sizeFile=size(file_select);
      Object re[][]={{file_select.getName(),sizeFile,lastTime(file_select)}};
      list=re;
      tableModel.addRow(list[0]);
     } catch (IOException e) {
      // TODO 自动生成 catch 块
      e.printStackTrace();
     }
    }
   }
  });
 }

 

 public void readfiles(File file, DefaultMutableTreeNode node) {//读取所选节点,获取子节点

  File list[] = file.listFiles();
  if (list == null)
   return;
  for (int i = 0; i    File file_inlist = list[i];
   // String filename = file_inlist.getName();

   if (file_inlist.isDirectory()) {
    parent = new DefaultMutableTreeNode(new MyFile(file_inlist));
    // 添加空白文件夹节点 使子节点显示为文件夹
    File stubadd = null;
    DefaultMutableTreeNode stub = new DefaultMutableTreeNode(
      stubadd);
    parent.add(stub);
    node.add(parent);
   } else {
    DefaultMutableTreeNode son = new DefaultMutableTreeNode(
      new MyFile(file_inlist));
    node.add(son);

   }
  }

 }

 public String size(File file) throws IOException {//读取文件的大小
  FileInputStream fileLength = new FileInputStream(file);
  String sizefile = fileLength.available() + "字节";
  return sizefile;

 }

 public Date lastTime(File file) {
  long lastModified = file.lastModified();// 取得最后一次修改的时间
  Date date = new Date(lastModified);
  date.setTime(lastModified);
  return date;
 }

 

 public Object[][] fu(File[] file) {

  Object[][] m = new Object[file.length][3];
  for (int i = 0; i    m[i][0] = file[i].getName();
   try {
    // 这里有问题,如果是目录,怎么取大小?所以要用if
    // m[i][1] = size(file[i]);
    if (file[i].isDirectory()) {
     m[i][1] = "目录";
    } else {
     m[i][1] = size(file[i]);
    }
   } catch (IOException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
   }
   m[i][2] = lastTime(file[i]);

  }
  return m;
 }
 public int getColumnCount() {
  // TODO 自动生成方法存根
  return 3;
 }

 public int getRowCount(File[] file) {
  // TODO 自动生成方法存根
  return file.length;
 }

 public Object getValueAt(int row, int col) {

  // TODO 自动生成方法存根
        return list[row][col];
 }

 public static void main(String[] args) {
  // TODO Auto-generated method

  Test1 disk = new Test1();
   try {
   disk.treeMake();
  } catch (UnknownHostException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membersihkan huruf pemacu pendua pada Windows 11 Bagaimana untuk membersihkan huruf pemacu pendua pada Windows 11 Sep 26, 2023 pm 11:33 PM

Walaupun Windows 11 masih merupakan peningkatan ketara daripada lelaran sebelumnya, terdapat beberapa isu yang nampaknya tidak diselesaikan oleh Microsoft. Masalah biasa ialah pendua huruf pemacu dalam Windows 11, di mana pemacu yang sama disenaraikan dua kali dan anda perlu memadamkan entri yang berlebihan. Sebagai contoh, ia akan disenaraikan di bawah "PC ini" dan sekali lagi sebagai pemacu boleh tanggal dalam anak tetingkap navigasi. Walaupun ini tidak akan diterjemahkan kepada penggunaan ruang storan yang meningkat, ia pasti akan mengacaukan Windows Explorer. Mengapakah pemacu saya muncul dua kali dalam Windows 11? Secara lalai, Windows memaparkan pemacu luaran dua kali dalam anak tetingkap navigasi. Begitulah caranya. Walau bagaimanapun, huruf pemacu bercanggah atau sistem rosak

Penggunaan CPU yang tinggi bagi perkhidmatan Pengurus Akses Ciri dalam Windows 11 Penggunaan CPU yang tinggi bagi perkhidmatan Pengurus Akses Ciri dalam Windows 11 Feb 19, 2024 pm 03:06 PM

Sesetengah pengguna dan pemain PC mungkin mengalami penggunaan CPU yang luar biasa tinggi apabila menggunakan Windows 11 atau Windows 10, terutamanya apabila menjalankan aplikasi atau permainan tertentu. Artikel ini menyediakan beberapa cadangan untuk membantu pengguna mengurangkan masalah ini. Sesetengah pengguna PC yang terjejas menyatakan bahawa apabila mengalami isu ini, mereka memerhatikan Pengurus Tugas menunjukkan aplikasi lain hanya menggunakan 0 hingga 5 peratus daripada CPU, manakala perkhidmatan Hos Perkhidmatan: Pengurus Akses Keupayaan melihat penggunaan setinggi 80 peratus hingga 100%. . Apakah perkhidmatan Hos Perkhidmatan: Pengurus Akses Ciri? Fungsi perkhidmatan Pengurus Akses Fungsi adalah untuk mengesahkan sama ada aplikasi mempunyai kebenaran untuk mengakses kamera dan mikrofon dan memberikan kebenaran yang diperlukan. Ia memudahkan pengurusan aplikasi UWP

Ketahui sama ada PC anda mempunyai Unit Pemprosesan Neural (NPU) dalam Windows 11 Ketahui sama ada PC anda mempunyai Unit Pemprosesan Neural (NPU) dalam Windows 11 Mar 16, 2024 pm 06:34 PM

NPU ialah singkatan unit pemprosesan saraf, iaitu pemproses yang digunakan khas untuk melakukan pengiraan seperti algoritma pembelajaran mesin. Ringkasnya, ia adalah pemproses yang direka khusus untuk mempercepatkan tugas yang berkaitan dengan kecerdasan buatan. Artikel ini akan menerangkan cara menyemak sama ada PC Windows 11 dilengkapi dengan Unit Pemprosesan Neural (NPU). Ketahui sama ada PC anda mempunyai Unit Pemprosesan Neural (NPU) dalam Windows 11 Kaedah berikut akan membantu anda menentukan sama ada PC anda mempunyai Unit Pemprosesan Neural (NPU) yang dipasang dalam Windows 11. Melalui Pengurus Tugas Melalui Pengurus Peranti Dengan melawati laman web rasmi Di bawah, kami telah menerangkan semua kaedah ini secara terperinci. 1] Gunakan Pengurus Tugas untuk menyemak sama ada PC anda mempunyai NPU pada Windows 11 PC

Cara Menyembunyikan dan Menyahsembunyikan Folder pada Windows 11 [3 Cara] Cara Menyembunyikan dan Menyahsembunyikan Folder pada Windows 11 [3 Cara] Sep 23, 2023 am 08:37 AM

Menyembunyikan folder ialah cara terbaik untuk memastikan desktop anda teratur. Mungkin anda ingin menyimpan fail peribadi anda atau beberapa butiran pelanggan daripada mengintip. Walau apa pun, keupayaan untuk menyimpannya dan menyorokkannya apabila perlu adalah penjimatan yang besar. Ringkasnya, fail tersembunyi ini tidak akan muncul dalam menu utama, tetapi ia masih boleh diakses. Ia sangat mudah dan tidak perlu mengambil terlalu banyak masa. Bagaimana untuk menyembunyikan folder dalam Windows 11? 1. Gunakan File Explorer dan tekan kekunci + untuk membuka File Explorer. WindowsE Cari folder yang ingin anda sembunyikan, klik kanan padanya dan pilih Properties. Navigasi ke tab Umum, tandai kotak Sembunyikan, klik Guna, dan kemudian klik OK. Dalam kotak dialog seterusnya, tandai Gunakan perubahan pada folder ini, sub-fail

Bagaimana untuk menyediakan mikrofon dalam pengurus audio definisi tinggi realtek Bagaimana untuk menyediakan mikrofon dalam pengurus audio definisi tinggi realtek Jan 02, 2024 am 09:33 AM

Sistem win10 ialah sistem yang boleh menjalankan pelbagai tetapan dan pelarasan Hari ini, editor memberikan anda penyelesaian tentang cara menetapkan mikrofon dalam pengurus audio definisi tinggi realtek! Jika anda berminat, datang dan lihat. Cara menetapkan mikrofon dalam pengurus audio definisi tinggi realtek: 1. Cari ikon "pengurus audio definisi tinggi realtek" dalam rancangan ikon tersembunyi di sudut kiri bawah desktop. 2. Klik untuk memasuki antara muka Perkara pertama yang anda lihat ialah "Halaman Pembesar Suara". Dalam antara muka ini, anda boleh melaraskan bunyi pembesar suara melalui konfigurasi pembesar suara. 3. Seterusnya ialah kesan bunyi Anda boleh memilih persekitaran kesan bunyi yang anda inginkan serta "equalizer, pop, rock, club" dan sebagainya. 4. Seterusnya ialah pembetulan kualiti bunyi dalaman hanya boleh membetulkan ".

Dayakan atau lumpuhkan Windows Boot Manager pada Windows 11/10 Dayakan atau lumpuhkan Windows Boot Manager pada Windows 11/10 Feb 19, 2024 pm 01:09 PM

Dalam artikel ini, kami akan menunjukkan kepada anda pelbagai cara untuk mendayakan atau melumpuhkan Windows Boot Manager pada Windows 11/10. Windows Boot Manager (BOOTMGR) ialah komponen penting dalam sistem pengendalian Windows, bertanggungjawab untuk mengkonfigurasi persekitaran but, mengurus urutan but dan mengendalikan ralat but. Ia amat berguna pada PC dengan berbilang sistem pengendalian yang dipasang, kerana ia membolehkan pengguna memilih sistem pengendalian yang hendak dimuatkan semasa permulaan atau dimulakan semula. Jika anda ingin mempercepatkan permulaan sistem anda, anda boleh cuba melumpuhkan Windows Boot Manager untuk mengurangkan masa permulaan. Walaupun ini bukan amalan yang disyorkan, ia boleh meningkatkan kelajuan but dengan ketara. Selain itu, anda boleh mengedit bootmgr yang dipaparkan

Bagaimana untuk menghentikan kemas kini proses Pengurus Tugas dan mematikan tugas dengan lebih mudah dalam Windows 11 Bagaimana untuk menghentikan kemas kini proses Pengurus Tugas dan mematikan tugas dengan lebih mudah dalam Windows 11 Aug 20, 2023 am 11:05 AM

Cara Menjeda Kemas Kini Proses Pengurus Tugas dalam Windows 11 dan Windows 10 Tekan CTRL+Kekunci Tetingkap+Padam untuk membuka Pengurus Tugas. Secara lalai, Pengurus Tugas akan membuka tetingkap Proses. Seperti yang anda lihat di sini, semua apl bergerak tanpa henti dan sukar untuk menunjukkannya apabila anda ingin memilihnya. Jadi, tekan CTRL dan tahan, ini akan menjeda pengurus tugas. Anda masih boleh memilih aplikasi dan juga tatal ke bawah, tetapi anda mesti menahan butang CTRL pada setiap masa.

Bagaimana untuk mencari sumber pada cakera rangkaian 115 Bagaimana untuk mencari sumber pada cakera rangkaian 115 Feb 23, 2024 pm 05:10 PM

Akan ada banyak sumber dalam cakera rangkaian 115, jadi bagaimana untuk mencari sumber? Pengguna boleh mencari sumber yang mereka perlukan dalam perisian, kemudian masukkan antara muka muat turun, dan kemudian memilih untuk menyimpan ke cakera rangkaian. Pengenalan kepada kaedah mencari sumber pada cakera rangkaian 115 ini boleh memberitahu anda kandungan tertentu Berikut ialah pengenalan terperinci, datang dan lihat. Bagaimana untuk mencari sumber pada cakera rangkaian 115 Jawapan: Cari kandungan dalam perisian, dan kemudian klik untuk menyimpan ke cakera rangkaian. Pengenalan terperinci: 1. Mula-mula masukkan sumber yang anda inginkan dalam apl. 2. Kemudian klik pautan kata kunci yang muncul. 3. Kemudian masukkan antara muka muat turun. 4. Klik Simpan ke cakera rangkaian di dalam.

See all articles