资源管理器2

Jun 07, 2016 pm 03:43 PM
package 管理器 资源

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

Copier après la connexion

 

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();
  }
 }
}

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment nettoyer les lettres de lecteur en double sous Windows 11 Comment nettoyer les lettres de lecteur en double sous Windows 11 Sep 26, 2023 pm 11:33 PM

Bien que Windows 11 constitue toujours une mise à niveau importante par rapport à l'itération précédente, Microsoft ne semble pas avoir résolu certains problèmes. Un problème courant concerne les lettres de lecteur en double dans Windows 11, où le même lecteur est répertorié deux fois et vous devez supprimer les entrées redondantes. Par exemple, il sera répertorié sous « Ce PC », puis à nouveau en tant que lecteur amovible dans le volet de navigation. Même si cela ne se traduira pas par une consommation accrue d'espace de stockage, cela encombrera certainement l'Explorateur Windows. Pourquoi mon disque apparaît-il deux fois dans Windows 11 ? Par défaut, Windows affiche les disques externes deux fois dans le volet de navigation. C'est comme ça que ça se passe. Cependant, des lettres de lecteur contradictoires ou des systèmes corrompus

Utilisation élevée du processeur du service Feature Access Manager dans Windows 11 Utilisation élevée du processeur du service Feature Access Manager dans Windows 11 Feb 19, 2024 pm 03:06 PM

Certains utilisateurs de PC et joueurs peuvent rencontrer une utilisation anormalement élevée du processeur lorsqu'ils utilisent Windows 11 ou Windows 10, en particulier lors de l'exécution de certaines applications ou de certains jeux. Cet article fournit quelques suggestions pour aider les utilisateurs à résoudre ce problème. Certains utilisateurs de PC concernés ont noté que lorsqu'ils rencontraient ce problème, ils avaient observé que le Gestionnaire des tâches affichait d'autres applications utilisant seulement 0 à 5 % du processeur, tandis que le service Service Host : Capacity Access Manager voyait une utilisation allant jusqu'à 80 à 100 %. %. Qu'est-ce que le service Hôte du service : Feature Access Manager ? La fonction du service Function Access Manager est de confirmer si l'application est autorisée à accéder à la caméra et au microphone et d'accorder les autorisations nécessaires. Il facilite la gestion des applications UWP

Découvrez si votre PC dispose d'une unité de traitement neuronal (NPU) sous Windows 11 Découvrez si votre PC dispose d'une unité de traitement neuronal (NPU) sous Windows 11 Mar 16, 2024 pm 06:34 PM

NPU est l'abréviation de unité de traitement neuronal, qui est un processeur spécialement utilisé pour effectuer des calculs tels que des algorithmes d'apprentissage automatique. En termes simples, il s'agit d'un processeur spécialement conçu pour accélérer les tâches liées à l'intelligence artificielle. Cet article explique comment vérifier si un PC Windows 11 est équipé d'une unité de traitement neuronal (NPU). Découvrez si votre PC dispose d'une unité de traitement neuronal (NPU) dans Windows 11. Les méthodes suivantes vous aideront à déterminer si votre PC dispose d'une unité de traitement neuronal (NPU) installée dans Windows 11. Via le Gestionnaire des tâches Via le Gestionnaire de périphériques En visitant le site officiel Ci-dessous, nous avons expliqué toutes ces méthodes en détail. 1] Utilisez le Gestionnaire des tâches pour vérifier si votre PC dispose d'un NPU sur un PC Windows 11

Comment masquer et afficher des dossiers sous Windows 11 [3 façons] Comment masquer et afficher des dossiers sous Windows 11 [3 façons] Sep 23, 2023 am 08:37 AM

Masquer des dossiers est un excellent moyen de garder votre bureau organisé. Peut-être souhaitez-vous garder vos fichiers personnels ou certaines informations sur vos clients à l'abri des regards indiscrets. Quoi qu’il en soit, la possibilité de les ranger et de les afficher si nécessaire constitue une grande économie. Bref, ces fichiers cachés n'apparaîtront pas dans le menu principal, mais ils seront toujours accessibles. C'est très simple et ne devrait pas vous prendre trop de temps. Comment masquer un dossier sous Windows 11 ? 1. Utilisez l'Explorateur de fichiers et appuyez sur la touche + pour ouvrir l'Explorateur de fichiers. WindowsE Recherchez le dossier que vous souhaitez masquer, cliquez dessus avec le bouton droit et sélectionnez Propriétés. Accédez à l'onglet Général, cochez la case Masquer, cliquez sur Appliquer, puis cliquez sur OK. Dans la boîte de dialogue suivante, cochez Appliquer les modifications à ce dossier, sous-dossier

Comment configurer le microphone dans le gestionnaire audio haute définition Realtek Comment configurer le microphone dans le gestionnaire audio haute définition Realtek Jan 02, 2024 am 09:33 AM

Le système win10 est un système capable d'effectuer divers réglages et ajustements. Aujourd'hui, l'éditeur vous propose la solution pour configurer le microphone dans le gestionnaire audio haute définition Realtek ! Si vous êtes intéressé, venez jeter un oeil. Comment configurer le microphone dans Realtek High-Definition Audio Manager : 1. Recherchez l'icône « Realtek High-Definition Audio Manager » dans la liste des icônes cachées dans le coin inférieur gauche du bureau. 2. Cliquez pour accéder à l'interface. La première chose que vous voyez est la « Page du haut-parleur ». Dans cette interface, vous pouvez régler le son du haut-parleur via la configuration des haut-parleurs. 3. Vient ensuite l'effet sonore. Vous pouvez choisir l'environnement d'effet sonore que vous souhaitez et « égaliseur, pop, rock, club », etc. 4. Vient ensuite la correction de la qualité du son intérieur. La correction de l'espace intérieur ne peut corriger que le ".

Activer ou désactiver le gestionnaire de démarrage Windows sur Windows 11/10 Activer ou désactiver le gestionnaire de démarrage Windows sur Windows 11/10 Feb 19, 2024 pm 01:09 PM

Dans cet article, nous allons vous montrer différentes manières d'activer ou de désactiver le gestionnaire de démarrage Windows sur Windows 11/10. Le gestionnaire de démarrage Windows (BOOTMGR) est un composant important du système d'exploitation Windows, responsable de la configuration de l'environnement de démarrage, de la gestion des séquences de démarrage et de la gestion des erreurs de démarrage. Il est particulièrement utile sur les PC sur lesquels plusieurs systèmes d'exploitation sont installés, car il permet aux utilisateurs de sélectionner le système d'exploitation à charger au démarrage ou au redémarrage. Si vous souhaitez accélérer le démarrage de votre système, vous pouvez essayer de désactiver le gestionnaire de démarrage Windows pour réduire le temps de démarrage. Bien que ce ne soit pas une pratique recommandée, cela peut améliorer considérablement la vitesse de démarrage. De plus, vous pouvez modifier le bootmgr affiché

Comment arrêter les mises à jour du processus du Gestionnaire des tâches et supprimer des tâches plus facilement dans Windows 11 Comment arrêter les mises à jour du processus du Gestionnaire des tâches et supprimer des tâches plus facilement dans Windows 11 Aug 20, 2023 am 11:05 AM

Comment suspendre les mises à jour du processus du Gestionnaire des tâches dans Windows 11 et Windows 10 Appuyez sur CTRL + Touche Fenêtre + Suppr pour ouvrir le Gestionnaire des tâches. Par défaut, le Gestionnaire des tâches ouvrira la fenêtre Processus. Comme vous pouvez le voir ici, toutes les applications se déplacent sans cesse et il peut être difficile de les indiquer lorsque vous souhaitez les sélectionner. Alors, appuyez sur CTRL et maintenez-le enfoncé, cela mettra le gestionnaire de tâches en pause. Vous pouvez toujours sélectionner des applications et même faire défiler vers le bas, mais vous devez maintenir le bouton CTRL enfoncé à tout moment.

Comment trouver des ressources sur 115 disques réseau Comment trouver des ressources sur 115 disques réseau Feb 23, 2024 pm 05:10 PM

Il y aura beaucoup de ressources sur le disque réseau 115, alors comment trouver des ressources ? Les utilisateurs peuvent rechercher les ressources dont ils ont besoin dans le logiciel, puis accéder à l'interface de téléchargement, puis choisir de les enregistrer sur le disque réseau. Cette introduction à la méthode de recherche de ressources sur 115 disques réseau peut vous indiquer le contenu spécifique. Ce qui suit est une introduction détaillée, venez y jeter un œil. Comment trouver des ressources sur le disque réseau 115 ? Réponse : Recherchez le contenu dans le logiciel, puis cliquez pour enregistrer sur le disque réseau. Introduction détaillée : 1. Entrez d'abord les ressources souhaitées dans l'application. 2. Cliquez ensuite sur le lien mot-clé qui apparaît. 3. Entrez ensuite dans l'interface de téléchargement. 4. Cliquez sur Enregistrer sur le disque réseau à l'intérieur.

See all articles