资源管理器2
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
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();
}
}
}

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Windows 11은 이전 버전에 비해 여전히 중요한 업그레이드이지만 Microsoft가 해결하지 못한 것으로 보이는 몇 가지 문제가 있습니다. 일반적인 문제는 Windows 11에서 동일한 드라이브가 두 번 나열되어 중복 항목을 삭제해야 하는 중복 드라이브 문자입니다. 예를 들어 "이 PC" 아래에 나열된 다음 다시 탐색 창에 이동식 드라이브로 나열됩니다. 이것이 저장 공간 소비 증가로 이어지지는 않지만 확실히 Windows 탐색기를 복잡하게 만들 것입니다. Windows 11에서 내 드라이브가 두 번 표시되는 이유는 무엇입니까? 기본적으로 Windows는 탐색 창에 외부 드라이브를 두 번 표시합니다. 그것이 가는 방식입니다. 그러나 드라이브 문자가 충돌하거나 시스템이 손상되었습니다.

일부 PC 사용자 및 게이머는 Windows 11 또는 Windows 10을 사용할 때, 특히 특정 응용 프로그램이나 게임을 실행할 때 비정상적으로 높은 CPU 사용량을 경험할 수 있습니다. 이 문서에서는 사용자가 이 문제를 완화하는 데 도움이 되는 몇 가지 제안 사항을 제공합니다. 영향을 받은 일부 PC 사용자는 이 문제가 발생했을 때 작업 관리자에서 CPU의 0~5%만 사용하는 다른 응용 프로그램을 표시하는 반면 서비스 호스트: 용량 액세스 관리자 서비스에서는 사용량이 80%~100까지 나타나는 것을 확인했습니다. %. 서비스 호스트: Feature Access Manager 서비스란 무엇입니까? Function Access Manager 서비스의 기능은 해당 애플리케이션이 카메라, 마이크에 접근할 수 있는 권한이 있는지 확인하고 필요한 권한을 부여하는 것입니다. UWP 애플리케이션 관리를 용이하게 합니다.

NPU는 Neural Process Unit의 약어로, 기계 학습 알고리즘 등의 계산을 수행하는 데 특별히 사용되는 프로세서입니다. 간단히 말해서 인공지능과 관련된 작업을 가속화하도록 특별히 설계된 프로세서입니다. 이 문서에서는 Windows 11 PC에 NPU(신경 처리 장치)가 장착되어 있는지 확인하는 방법을 설명합니다. Windows 11에서 PC에 NPU(신경 처리 장치)가 있는지 확인합니다. 다음 방법은 PC에 Windows 11에 NPU(신경 처리 장치)가 설치되어 있는지 확인하는 데 도움이 됩니다. 작업 관리자를 통해 장치 관리자를 통해 아래 공식 웹사이트를 방문하면 이러한 모든 방법을 자세히 설명했습니다. 1] 작업 관리자를 사용하여 Windows 11 PC에서 PC에 NPU가 있는지 확인하세요.
![Windows 11에서 폴더 숨기기 및 숨김 해제 방법 [3가지 방법]](https://img.php.cn/upload/article/000/887/227/169542942766265.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
폴더를 숨기는 것은 데스크탑을 정리된 상태로 유지하는 좋은 방법입니다. 개인 파일이나 일부 고객 세부 정보를 엿보는 사람의 눈에 띄지 않게 하고 싶을 수도 있습니다. 그것이 무엇이든, 필요할 때 그것들을 치워두고 숨김을 해제할 수 있는 능력은 큰 절약입니다. 즉, 이러한 숨겨진 파일은 기본 메뉴에 표시되지 않지만 계속 액세스할 수 있습니다. 매우 간단하며 시간이 너무 많이 걸리지 않습니다. Windows 11에서 폴더를 숨기는 방법은 무엇입니까? 1. 파일 탐색기를 사용하고 + 키를 눌러 파일 탐색기를 엽니다. WindowsE 숨기려는 폴더를 찾아 마우스 오른쪽 버튼으로 클릭한 후 속성을 선택하세요. 일반 탭으로 이동하여 숨기기 상자를 선택하고 적용을 클릭한 다음 확인을 클릭합니다. 다음 대화 상자에서 이 폴더, 하위 폴더에 변경 사항 적용을 선택합니다.

win10 시스템은 다양한 설정과 조정이 가능한 시스템입니다. 오늘은 에디터가 리얼텍 고화질 오디오 매니저에서 마이크 설정 방법에 대한 솔루션을 가져왔습니다! 관심 있으신 분들은 오셔서 구경해보세요. Realtek HD 오디오 관리자에서 마이크를 설정하는 방법: 1. 바탕 화면 왼쪽 하단에 있는 숨겨진 아이콘 표시에서 "realtek HD 오디오 관리자" 아이콘을 찾습니다. 2. 인터페이스로 들어가려면 클릭하세요. 가장 먼저 보이는 것은 "스피커 페이지"입니다. 이 인터페이스에서는 스피커 구성을 통해 스피커 사운드를 조정할 수 있습니다. 3. 다음은 음향 효과입니다. 원하는 음향 효과 환경과 "이퀄라이저, 팝, 록, 클럽" 등을 선택할 수 있습니다. 4. 다음은 실내음질보정입니다. 실내공간보정은 "

이 기사에서는 Windows 11/10에서 Windows 부팅 관리자를 활성화하거나 비활성화하는 다양한 방법을 보여줍니다. BOOTMGR(Windows 부팅 관리자)은 부팅 환경 구성, 부팅 순서 관리 및 부팅 오류 처리를 담당하는 Windows 운영 체제의 중요한 구성 요소입니다. 사용자가 시작하거나 다시 시작할 때 로드할 운영 체제를 선택할 수 있으므로 여러 운영 체제가 설치된 PC에 특히 유용합니다. 시스템 시작 속도를 높이려면 Windows 부팅 관리자를 비활성화하여 시작 시간을 줄일 수 있습니다. 이는 권장되는 방법은 아니지만 부팅 속도를 크게 향상시킬 수 있습니다. 또한 표시된 bootmgr을 편집할 수 있습니다.

115 네트워크 디스크에는 많은 리소스가 있을 것인데 리소스를 찾는 방법은 무엇입니까? 사용자는 소프트웨어에서 필요한 리소스를 검색한 다음 다운로드 인터페이스로 들어간 다음 네트워크 디스크에 저장하도록 선택할 수 있습니다. 115 네트워크 디스크에서 리소스를 찾는 방법에 대한 이 소개는 구체적인 내용을 알려줄 수 있습니다. 다음은 자세한 소개입니다. 와서 살펴보세요. 115 네트워크 디스크에서 리소스를 찾는 방법 답변: 소프트웨어에서 콘텐츠를 검색한 다음 클릭하여 네트워크 디스크에 저장합니다. 자세한 소개: 1. 먼저 앱에서 원하는 리소스를 입력하세요. 2. 그러면 나타나는 키워드 링크를 클릭하세요. 3. 그런 다음 다운로드 인터페이스로 들어갑니다. 4. 내부 네트워크 디스크에 저장을 클릭합니다.

Windows 11 및 Windows 10에서 작업 관리자 프로세스 업데이트를 일시 중지하는 방법 CTRL+창 키+Delete를 눌러 작업 관리자를 엽니다. 기본적으로 작업 관리자는 프로세스 창을 엽니다. 여기에서 볼 수 있듯이 모든 앱은 끝없이 돌아다니기 때문에 선택하려고 할 때 아래로 가리키는 것이 어려울 수 있습니다. 따라서 CTRL을 길게 누르면 작업 관리자가 일시 중지됩니다. 여전히 앱을 선택하고 아래로 스크롤할 수도 있지만 항상 CTRL 버튼을 누르고 있어야 합니다.
