100分求一树型资源管理器代码
实现本地的资源管理器,要求节点到本地文件,有图标显示,有单击和双击时间,单击树型图.双击空在那就行,兄弟有急用.那位大哥能帮帮我,~ 问题点数:100、回复次数:11Top
1 楼yz790724(想想)回复于 2004-12-03 08:44:32 得分 0
UPTop
2 楼Eddie005(♂) №.零零伍 (♂)回复于 2004-12-03 09:05:55 得分 0
up~Top
3 楼zh_baiyu(SkyBay)回复于 2004-12-03 09:09:24 得分 0
难啊。Top
4 楼dragonlw(潜龙在渊)回复于 2004-12-03 09:49:02 得分 0
java-pure-swill这本书上有实例
Top
5 楼pdw2009(不想做菜鸟)回复于 2004-12-03 09:54:00 得分 0
呵呵....楼主想在什么地方实现这样的功能呢.如果用swt实现应该不能...
Top
6 楼zzzhc()回复于 2004-12-03 10:07:30 得分 50
这个应该可以满足你的要求:
http://blog.csdn.net/zzzhc/archive/2004/12/03/202976.aspxTop
7 楼shangqiao(伤桥(千万不要理解为我可怜桥,是“伤心桥下”的缩写))回复于 2004-12-03 10:59:40 得分 0
我有使用swt的代码,作的非常漂亮,去http://briefcase.tom.com/folder.php?directory_id=125454下载
Top
8 楼liubeiqi(无爱无悔)回复于 2004-12-03 11:29:33 得分 50
<script LANGUAGE="JavaScript">
<!--
//每个节点有一个数组,包含 4+n个元素
// node[0]为0/1 对应节点的展开/关闭
// node[1]为0/1 对应文件夹的关闭/展开
// node[2]为1 如果节点的子节点是文档
// node[3]是节点的名称
// node[4]...node[4+n]为n个子节点
// 初始化菜单的数据
function generateTree()
{
var aux1, aux2, aux3, aux4
foldersTree = folderNode("人力资源管理")
aux1 = appendChild(foldersTree, folderNode("职工人员档案"))
aux2 = appendChild(aux1, leafNode("在职人员档案"))
appendChild(aux2, generateDocEntry(0, "个人基本信息", "empInfo.jsp", ""))
appendChild(aux2, generateDocEntry(0, "合同信息管理", "empInfo.jsp", ""))
aux2 = appendChild(aux1, leafNode("离职人员档案"))
appendChild(aux2, generateDocEntry(0, "个人基本信息", "empInfo.jsp", ""))
appendChild(aux2, generateDocEntry(0, "合同信息管理", "empInfo.jsp", ""))
aux1 = appendChild(foldersTree, folderNode("人员管理"))
aux2 = appendChild(aux1, leafNode("培训管理"))
appendChild(aux2,generateDocEntry(0, "培训计划", "basefolder.htm", ""))
appendChild(aux2,generateDocEntry(0, "工具软件", "basefolder.htm", ""))
appendChild(aux2,generateDocEntry(0, "游戏", "basefolder.htm", ""))
aux2 = appendChild(aux1, leafNode("岗位管理"))
appendChild(aux2, generateDocEntry(0, "岗位管理信息", "basefolder.htm",""))
aux2 = appendChild(aux1, leafNode("人才储备"))
appendChild(aux2, generateDocEntry(0, "人才储备信息", "basefolder.htm",""))
aux2 = appendChild(aux1, leafNode("应聘人员管理"))
appendChild(aux2, generateDocEntry(0, "应聘人员信息", "basefolder.htm",""))
}
// 创建节点的辅助函数
function folderNode(name)
{
var arrayAux
arrayAux = new Array
arrayAux[0] = 0
arrayAux[1] = 0
arrayAux[2] = 0
arrayAux[3] = name
return arrayAux
}
function leafNode(name)
{
var arrayAux
arrayAux = new Array
arrayAux[0] = 0
arrayAux[1] = 0
arrayAux[2] = 1
arrayAux[3] = name
return arrayAux
}
function appendChild(parent, child)
{
parent[parent.length] = child
return child
}
function generateDocEntry(icon, docDescription, link)
{
var retString =""
if (icon==0)
retString = "<A href='"+link+"' target=mainFrame><img src='image/doc.gif' alt='在右边框架中打开'"
else
retString = "<A href='"+link+"' target=_blank><img src='image/link.gif' alt='在新窗口中打开'"
retString = retString + " border=0></a><td nowrap><font style='font-size:9pt;font-family:宋体'>" + docDescription + "</font>"
return retString
}
//刷新树状菜单
function redrawTree()
{
var doc = top.treeFrame.window.document
doc.clear()
doc.write("<body bgcolor='white'>")
redrawNode(foldersTree, doc, 0, 1, "")
doc.close()
}
function redrawNode(foldersNode, doc, level, lastNode, leftSide)
{
var j=0
var i=0
doc.write("<table border=0 cellspacing=0 cellpadding=0>")
doc.write("<tr><td valign = middle nowrap>")
doc.write(leftSide)
if (level>0)
if (lastNode) //'brother'子节点数组中有否兄弟节点
{
doc.write("<img src='image/lastnode.gif' width=16 height=22>")
leftSide = leftSide + "<img src='image/blank.gif' width=16 height=22>"
}
else
{
doc.write("<img src='image/node.gif' width=16 height=22>")
leftSide = leftSide + "<img src='image/vertline.gif' width=16 height=22>"
}
displayIconAndLabel(foldersNode, doc)
doc.write("</table>")
if (foldersNode.length > 4 && foldersNode[0]) //有更低层的节点和文件夹展开着
{
if (!foldersNode[2])//带文件夹的文件夹
{
level=level+1
for (i=4; i<foldersNode.length;i++)
if (i==foldersNode.length-1)
redrawNode(foldersNode[i], doc, level, 1, leftSide)
else
redrawNode(foldersNode[i], doc, level, 0, leftSide)
}
else //带文档的文件夹
{
for (i=4; i<foldersNode.length;i++)
{
doc.write("<table border=0 cellspacing=0 cellpadding=0 valign=center>")
doc.write("<tr><td nowrap>")
doc.write(leftSide)
if (i==foldersNode.length - 1)
doc.write("<img src='image/lastnode.gif' width=16 height=22>")
else
doc.write("<img src='image/node.gif' width=16 height=22>")
doc.write(foldersNode[i])
doc.write("</table>")
}
}
}
}
function displayIconAndLabel(foldersNode, doc)
{
doc.write("<A href='javascript:top.openBranch(\"" + foldersNode[3] + "\")'><img src=")
if (foldersNode[1])
doc.write("image/openfolder.gif width=24 height=22 border=noborder></a>")
else
doc.write("image/closedfolder.gif width=24 height=22 border=noborder></a>")
doc.write("<td valign=middle align=left nowrap>")
doc.write("<font style='font-size:9pt;font-family:宋体'>"+foldersNode[3]+"</font>")
}
//树收拢时调用的函数
//当父节点关闭,其所有的子节点也都闭合
function closeFolders(foldersNode)
{
var i=0
if (!foldersNode[2])
{
for (i=4; i< foldersNode.length; i++)
closeFolders(foldersNode[i])
}
foldersNode[0] = 0
foldersNode[1] = 0
}
//收拢节点
function clickOnFolderRec(foldersNode, folderName)
{
var i=0
if (foldersNode[3] == folderName)
{
if (foldersNode[0])
closeFolders(foldersNode)
else
{
foldersNode[0] = 1
foldersNode[1] = 1
}
}
else
{
if (!foldersNode[2])
for (i=4; i< foldersNode.length; i++)
clickOnFolderRec(foldersNode[i], folderName)
}
}
//打开分支
function openBranch(branchName)
{
clickOnFolderRec(foldersTree, branchName)
if (branchName=="Start folder" && foldersTree[0]==0)
top.mainFrame.location="basefolder.htm"
timeOutId = setTimeout("redrawTree()",100)
}
//页面载入时的初始化
function initializeTree()
{
generateTree()
redrawTree()
}
var foldersTree = 0
var timeOutId = 0
generateTree()
-->
</script>
</HEAD>
<frameset rows="100,*" cols="*" border="2" framespacing="0" onLoad='initializeTree()'>
<frame src="" scrolling="NO" noresize >
<frameset cols="170,*" border="2" framespacing="0">
<frame src="basetree.htm" name="treeFrame" scrolling="NO" noresize>
<frame src="" name="mainFrame">
</frameset>
</frameset>
------------图片什么的你句自己弄吧~我也是刚弄出来没几天~共同学习~Top
9 楼liubeiqi(无爱无悔)回复于 2004-12-03 11:33:27 得分 0
不好意思呀.双击的事件没写.你自己搞定吧`:PTop
10 楼liubeiqi(无爱无悔)回复于 2004-12-03 11:34:55 得分 0
这段代码你结合XML的结点概念会更好理解的~
Top
11 楼woowoowoo()回复于 2004-12-04 18:22:33 得分 0
恩.搞定,结贴Top




