189 8069 5689

java资源管理器代码 java资源管理器代码怎么写

在java程序中如何打开操作系统的资源管理器

只是打开而已吗,那只需要一行代码就能搞定。

创新互联2013年开创至今,先为双峰等服务建站,双峰等地企业,进行企业商务咨询服务。为双峰企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

Runtime.getRuntime().exec("explorer.exe");

如果需要在java中实现弹出文件选择框,那可以使用如下代码:

JFileChooser fd = new JFileChooser();

fd.setFileSelectionMode(JFileChooser.OPEN_DIALOG);

fd.showOpenDialog(null);

File f = fd.getSelectedFile();

if (f != null) {

System.out.println(f.getPath());

}

想用JAVA做一个类似于WINDOWS资源管理器的界面

给你一个例子

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.tree.*;

import java.awt.*;

import java.awt.event.*;

import java.io.File;

import java.util.EventObject;

public class FileExplorer extends JFrame{

public FileExplorer(){

final JTree tree = new JTree(createTreeModel());

JScrollPane scrollPane = new JScrollPane(tree);

getContentPane().add(scrollPane, BorderLayout.CENTER);

getContentPane().add(GJApp.getStatusArea(), BorderLayout.SOUTH);

tree.addTreeExpansionListener(new TreeExpansionListener(){

public void treeCollapsed(TreeExpansionEvent e){

}

public void treeExpanded(TreeExpansionEvent e){

UpdateStatus updateThread;

TreePath path = e.getPath();

FileNode node = (FileNode)path.getLastPathComponent();

if(!node.isExplored()){

DefaultTreeModel model = (DefaultTreeModel)tree.getModel();

GJApp.updateStatus("exploring...");

UpdateStatus us = new UpdateStatus();

us.start();

node.explore();

model.nodeStructureChanged(node);

}

}

class UpdateStatus extends Thread{

public void run(){

try{

Thread.currentThread().sleep(450);

}catch(InterruptedException e){}

SwingUtilities.invokeLater(new Runnable(){

public void run(){

GJApp.updateStatus("");

}

});

}

}

});

}

private DefaultTreeModel createTreeModel(){

File root = new File("C:/");

FileNode rootNode = new FileNode(root);

FileNode node;

rootNode.explore();

return new DefaultTreeModel(rootNode);

}

public static void main(String[] args){

GJApp.launch(new FileExplorer(), "JTree File Explorer", 300, 300, 450, 400);

}

}

class FileNode extends DefaultMutableTreeNode{

private boolean explored = false;

public FileNode(File file){

setUserObject(file);

}

public boolean getAllowsChildren(){

return isDirectory();

}

public boolean isLeaf(){

return !isDirectory();

}

public File getFile(){

return (File)getUserObject();

}

public boolean isExplored(){

return explored;

}

public boolean isDirectory(){

File file = getFile();

return file.isDirectory();

}

public String toString(){

File file = (File)getUserObject();

String filename = file.toString();

int index = filename.lastIndexOf("\\");

return (index!=-1 index!=filename.length()-1)? filename.substring(index+1) : filename;

}

public void explore(){

if(!isExplored()){

File file = getFile();

File[] children = file.listFiles();

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

add(new FileNode(children[i]));

}

explored = true;

}

}

}

Java资源管理器中树形文件目录的路径取得问题

这个要看你是怎么实现的TreeModel,无非三种方式:

1.

自己实现TreeModel,这样的话,节点对象就可以直接使用File对象。获取路径也就不成问题了。

2.

自己实现treeNode接口,这样的话,可以在treeNode接口中增加File对象的引用。

3.

用defaultMutableTreeNode来实现的,那么,可以使用setUserObject的方法,将File对象设置在TreeNode中,然后就可以在得到节点后,使用getUserObject来获取了。

大致如此吧,估计你用的是第3种,因为很少有人愿意重写TreeCellRenderer的,呵呵。但最佳的办法其实就是第一种。


当前文章:java资源管理器代码 java资源管理器代码怎么写
文章源于:http://jkwzsj.com/article/dojddss.html

其他资讯