社区
Java SE
帖子详情
如何用JTree做出像类似Windows资源管理器的界面?
Eraserpro
2003-03-18 04:12:20
如题,JTree这个类好像不大好用,想做一个图片浏览器,左边是路径树,右边显示图片,可路径树不知如何做,看了一些资料总觉不知从何下手,各位若有过类似的制作资料请给予指点,如有例子就更好了,先行谢过!
...全文
130
4
打赏
收藏
如何用JTree做出像类似Windows资源管理器的界面?
如题,JTree这个类好像不大好用,想做一个图片浏览器,左边是路径树,右边显示图片,可路径树不知如何做,看了一些资料总觉不知从何下手,各位若有过类似的制作资料请给予指点,如有例子就更好了,先行谢过!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Eraserpro
2003-03-19
打赏
举报
回复
多谢两位,我先看一下,分不是问题
jiaojian77
2003-03-19
打赏
举报
回复
还有两段代码,上次忘了。
tree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode)
tree.getLastSelectedPathComponent();
if (node == null) return;
File nodeInfo = (File)node.getUserObject();
if (node.isLeaf()) {
wholeName = nodeInfo.toString();
gotImage = new ImageIcon(wholeName,wholeName);
picture.setIcon(gotImage);
picture.setPreferredSize(new Dimension(gotImage.getIconWidth(),
gotImage.getIconHeight() ));
picture.revalidate();
//System.out.println(nodeInfo);
}else{
dirName = nodeInfo.toString();
System.out.println(dirName);
File[] fileList = FileSystemView.getFileSystemView().getFiles(nodeInfo,true);
String temp;
String fileName[] = new String[Array.getLength(fileList)];
for(int i=0; i<Array.getLength(fileList); i++){
temp=fileList[i].toString();
//System.out.println(temp);
if(dirName.charAt(dirName.length()-1)!='\\'){
fileName[i]=temp.substring(dirName.length()+1);
}else{
fileName[i]=temp.substring(dirName.length());
}
//System.out.println(fileName[i]);
}
list.setListData(fileName);
//System.out.println(nodeInfo);
}
}
});
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();
status.setText("exploring ...");
UpdateStatus us = new UpdateStatus();
us.start();
node.explore();
model.nodeStructureChanged(node);
}
}
jiaojian77
2003-03-18
打赏
举报
回复
我自己写的,不过有问题。我用1.4编译的。
你可以看看,参考一下。
先写个类:
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(File.separator);
return (index != -1 && index != filename.length()-1) ?
filename.substring(index+1) :
filename;
}
public void explore() {
if(!isDirectory())
return;
if(!isExplored()) {
File file = getFile();
File[] children = file.listFiles();
for(int i=0; i < children.length; ++i)
add(new FileNode(children[i]));
explored = true;
}
}
}
然后用下面的方法生成tree:
private TreeModel createTreeModel() {
disks = FileSystemView.getFileSystemView().getRoots();
if(Array.getLength(disks)>1){
DefaultMutableTreeNode root;
root = new DefaultMutableTreeNode("My computer");
for(int i=0; i<Array.getLength(disks); i++){
FileNode diskNode = new FileNode(disks[i]);
//diskNode.explore();
root.add(diskNode);
}
return new DefaultTreeModel(root);
}else{
FileNode root;
root = new FileNode(disks[0]);
return new DefaultTreeModel(root);
}
//return new DefaultTreeModel(root);
}
主程序中再加上一句:
final JTree tree = new JTree(createTreeModel());
能不能给200分呀?
zxhong
2003-03-18
打赏
举报
回复
http://expert.csdn.net/Expert/topic/1408/1408571.xml?temp=.4313166
基于JavaSwing和BeautyEye美化包实现的小型
资源管理器
FileExplorer 基于 java swing 开发的
资源管理器
。使用 java swing 美化包beautyeye对原生的 java swing 优化。 #实习内容 0、实现一个文件系统 (1)功能要求 a)
界面
上显示树形目录结构 b)根节点是“我的电脑” c)“我的电脑”下有几个盘符(C、D、E等)就有几个子节点,递归显示文件系统下的所有文件信息(分支可以是目录也可以是文件,叶子节点都...
Java调用explorer,GitHub - wangty225/FileExplorer: 基于 java swing 开发的
资源管理器
。使用 java swing 美化包beautyeye对原生...
FileExplorer基于 java swing 开发的
资源管理器
。使用 java swing 美化包beautyeye对原生的 java swing 优化。#实习内容0、实现一个文件系统(1)功能要求a)
界面
上显示树形目录结构b)根节点是“我的电脑”c)“我的电脑”下有几个盘符(C、D、E等)就有几个子节点,递归显示文件系统下的所有文件信息(分支可以是目录也可以是文件,叶子节点都是文件)d)能...
Java图形化GUI
界面
一、GUI是什么 GUI的全称为Graphical User Interface,图形化
界面
或图形用户接口,是指采用图形方式显示的计算机操作环境用户接口。与早期计算机使用的命令行
界面
相比,图形
界面
对于用户来说更为简便易用。GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用人们从此不再需要死记硬背大量的命令,取而代之的是通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。 1、 不流行的主
java图形化
界面
编程2
前一章己经介绍过AWT和Swing 的关系 , 因此不难知道 : 实际使用 Java 开发图形
界面
程序时 ,很少使用 AWT 组件,绝大部分时候都是用 Swing 组件开发的 。 Swing是由100%纯 Java实现的,不再依赖于本地平台的 GUI, 因此可以在所有平台上都保持相同的
界面
外观。独立于本地平台的Swing组件被称为轻量级组件;而依赖于本地平台的 AWT 组件被称为重量级组件。 由于 Swing 的所有组件完全采用 Java 实现,不再调用本地平台的 GUI,所以导致 Swing 图形
界面
java图形化
界面
编程-Swing 编程
前一章己经介绍过AWT和Swing 的关系 , 因此不难知道 : 实际使用 Java 开发图形
界面
程序时 ,很少使用 AWT 组件,绝大部分时候都是用 Swing 组件开发的 。 Swing是由100%纯 Java实现的,不再依赖于本地平台的 GUI, 因此可以在所有平台上都保持相同的
界面
外观。独立于本地平台的Swing组件被称为轻量级组件;而依赖于本地平台的 AWT 组件被称为重量级组件。
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章