java树型控件文档(简)

原创 2008年09月28日 11:36:00

 感谢朋友下载的java树型控件,下面是关于树型的简单文档资料                      qq:396775219

 

                                  

1 树型的编辑:

1.1树节点的删除

   非子叶节点的删除时,会其下所有节点都删除

1.2节点的添加

   新节点编号: 如果此节点本身就是子叶节点(即没有子节点)

   编号就为节点 新节点编号=节点编号+01

   如果此节点非子叶节点时(即有子节点)

   新节点编号=节点编号+(max(节点编号)+1)

   比如: 某节点下有如下子节点

             0101

                      0102

                      0104

                      0108

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

         那么添的节点将是0109

   引起上面节点编号的原因主要是:在删除节点时,采用不更改

        其他节点算法,这样可以减计算上的复杂度,提高速度

   :系统采用两位为一级方式,所以节点下子节点最多为99

1.3节点修改

   节点修改只能修改节点的,文本、连接地址和描述

   不能修改节点的编号,所以节点在修改后,其层次不会发生变化

1.4编码

   系统采用utf-8编码

   对于添加节点、树型显示节点进,汉字是很好的支持的。

1.5地址栏传汉字参数处理  

   在修改和删除节点时,显示节点的信息时,出现乱码情况

   主要原因是:传信息时,系统采用url将汉字作了参数

   java,char为两个字节十六位,正好对应简单汉字表,所以在传参时,

   将汉字或字符先转化为数字编码串,在前台页面里再将串转化为相应的汉字

   比如:

                20013

          a       97

   所以 "a"  就可以转化为 "20013,97" 作为参数值传递

  

   :本系统里不支持特殊符号,尤其是"," 在添加节点时要特别注意

 

1.6树型的编辑

   并不是完全独立的控件,是结合web系统的,因为数据的编辑操作都会

   涉及到客户端与服务器端的数据交互

   树型的可编辑设置,只需设置applet参数表里的 isEdit yesno即可(不

   区分大小写)

1.7在树型根目录下直接添加子节点

   添加的算法和其他子节点相同,但右键弹出菜单只设置"添加"

   也就是说,这个树型至少有一个根节点

 

2树型数据的存放

   数据存放在与调用此控件的jsp页面同目录的 .csv文件里(逗号分隔文件)

   系统采用按行,顺序读取,生成自定义的树型节点对象存在在内存中

   在文件中节点数据是无序的,所以系统在定义节点对象时,实现Comparable

   compareTo()方法,然后将存放节点对象的list,使用Collections.sort(list)

   进行排序.

3树型节点对象的定义

   属性如下

    private String nodeid;    //节点的唯一编码

       private String superid;   //当前节点的父节点编码

       private String text;      //节点显示文本

       private String url;       //节点连接地址

       private String describ;   //节点的描述

       private boolean isopen;   //节点是否为打开

       private int level;        //节点的树型中的层次

      

       private int nodeH=15;

       private boolean display=false; //节点是否显示

       private Image imageShow=null;  //节点图标

       private Font font=null; 

       private XYPoint begin=null;    //节点开始坐标

       private XYPoint point=null;    //节点结束点坐标

 

     nodeid,superid 这两个属性的关系定义了节点的父子关系

     isopen true false表示,此节点是否处于打开的状态 即变换打开与关闭目

            录标识符,加、减号变换使用

     level 每一个节点在树型中所处在层次,用于计算控件的 水平滚动条,如果层次

            的显示起过了一定值时,水平滚动条将会出现或隐蔽

     display 节点是否显示,初始状态时,只能根目录显示,其下的所有子节点都不显示

     imageShow 节点的显示图标,有文件夹打开、关闭、三角符(被点选时状态)共三种

     begin 节点在控件显示,即绘制树型时,每个节点开始坐标

     point 节点在控件显示,即绘制树型时,每个节点结束坐标点,为其下的子节点的

           开始点做好准备

     其他就不详细说明了.一目了然的

4事件   

4.1鼠标点击事件

MouseListener, MouseMotionListener

Public void mouseClicked(MouseEvent mouseClick){

  If(鼠标右键事件){

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 

}

  Else if(鼠标左键事件){

  //主要是点击连接事件

}

}

4.2鼠标点击事件的监听

采用的坐标范围的捕捉文式

:

   (a,b) 点击事件的坐标

 

  if(a>x1&&a<x2&&b>y1&&b>y2)

{

}

4.3滚动条滚动事件

  Public Boolean handleEvent(Event event){

        if (event.target == scrollbarX) //水平滚动条事件

           {

              dx=((Integer)event.arg).intValue();             

              repaint();

           }

       if (event.target == scrollbarY)//垂直滚动条事件

           {

              dy=((Integer)event.arg).intValue();

              repaint();

       }

}

4.4菜单的监听事件

ActionListener

 Public void actionPerformed(ActionEvent event){

if (event.getSource()==addItem) {

              //添加子节点

             

           }

    else if (event.getSource()==delItem) {

              //删除当前节点

             

              }

    else if (event.getSource()==modItem) {

              //修改当前节点 

 

           }

}

5文件的读写

5.1 添加节点

    因为树型的数据都是存放到文件中的, 所以添加是写文件的过程,是在文件内容后新加入内容,如下创建写对象

      BufferedWriter writer = new BufferedWriter(new FileWriter(file,true));

      Writer.write(content);

5.2 节点的删除

存入到文件里的数据不像存放在数据库里那样好操作.数据的删除只能在内存里操作

然后将结果全部写入到文件中,同时将先前,文件中的内容全部删除

BufferedWriter writer = new BufferedWriter(new FileWriter(file,false));

Writer.write(content);

5.3 修改节点

操作如上,删除

6参数设置

6.1常规参数

    <param name="param1" value="测试参数0">

    <param name="charSet" value="GB2312">

    <param name="lineColor" value="#4B4B4B">

    <param name="bgColor" value="#FFEECC">

    <param name="StrColor" value="#000000">

    <param name="urlTarget" value="frame2">

    <param name="borderColor" value="#CCBB88">

    <param name="isEdit" value="yes">      //树型是否可以界面编辑

6.2目录图标

<!-- Images -->     //目录图标

<param name="image1" value="closedfolder|../images/iconimages/closedfolder.gif">

<param name="image2" value="openfolder|../images/iconimages/openfolder.gif">

<param name="image3" value="document|../images/iconimages/document.gif">

<param name="image4" value="point|../images/iconimages/point.gif">

<param name="image5" value="root|../images/iconimages/root.gif">

6.4数据文件名称

<!-- Node File -->

<param name="nodeFile" value="menu.csv">     //存放数据文件名称

 

java的树形控件(1)

很多应用程序都使用树形分层结构来显示数据视图,用户可以展开或者收缩试图中国单个子树。 JTree的构造函数如下: 1)JTree()          建立一个系统默认的树 2)JTree(Hasht...
  • wintersense
  • wintersense
  • 2014年12月18日 21:01
  • 1282

单文档mfc添加树形控件

本文转自:http://blog.csdn.net/lh1162810317/article/details/11820889 一般的控件在基于对话框的mfc程序中使用非常方便,但在单文档的mfc中...
  • zhaoxiatengkong_1
  • zhaoxiatengkong_1
  • 2013年09月21日 08:44
  • 1564

MFC 树形控件CTreeCtrl显示文件路径及文件

在上篇文章中简单讲述了"MFC单文档分割窗口显示图片",但是我想实现的是左边显示图片的路径,右边显示图片的情况,所以这里需要讲述如何使用控件List Control\CListCtrl实现该功能,希望...
  • Eastmount
  • Eastmount
  • 2014年02月13日 01:06
  • 14244

PB树形控件勾选联动

做PB树形控件的时候需要勾选联动,从网上找了个方案,但是对向上勾选支持的不是很好,自己做了点优化,希望可以帮到别人 首先treeview需要勾选 checkboxes属性 在tv_1.clicke...
  • gudujian888
  • gudujian888
  • 2017年02月28日 10:41
  • 398

MFC树型控件浏览文件目录(三)

MFC树型控件浏览文件目录(三)--添加 右键菜单    转载▼ 今天把树型控件这个小小的工程写完吧,最后一部就是加上右键弹出菜单,效果图如图3-1,就是在树的...
  • zmr1991
  • zmr1991
  • 2015年01月20日 17:02
  • 824

MFC树型控件浏览文件目录(一)--显示文件树

转载▼ 本文对MFC中,用树型控件实现文件目录的浏览进行了简单的介绍。 主要实现以下几个功能: 1、显示文件目录树; 2、对于文件,在树型控件中双击进行打开; 3...
  • zmr1991
  • zmr1991
  • 2015年01月20日 17:04
  • 1090

单文档mfc添加树形控件

注意:因为某些原因(网上说是vs2010不再支持mfc中的某些控件,具体是什么我也不知道)本方法(嵌入对话条的方法)不能在vs2010上使用,所以如果是使用vs2010的小伙伴们请注意了。 一般的控...
  • lh1162810317
  • lh1162810317
  • 2013年09月18日 21:30
  • 2095

深入理解 Java 泛型

首先提个问题: Java 泛型的作用是什么?泛型擦除是什么?泛型一般用在什么场景? 如果这个问题你答不上来,那这篇文章可能就对你有些价值。 读完本文你将了解到: 什么是泛型 为什么引入...
  • u011240877
  • u011240877
  • 2016年12月09日 22:14
  • 5518

MFC中树形控件的应用——电话簿

一、电话薄的代码如下: 1、 // PhoneDlg.cpp : implementation file // #include "stdafx.h" #include "Phone.h" #inc...
  • ywxk1314
  • ywxk1314
  • 2016年06月20日 11:34
  • 545

Qt5学习笔记(3)——树形控件QtreeWidget

1.Qt怎么添加图片资源?2.Qt报错No rule to make target “D:/XXX/XXX/XXX”,needed by “D:/XXX/XX/XX” Stop...
  • raiven2008
  • raiven2008
  • 2015年01月09日 22:40
  • 1195
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java树型控件文档(简)
举报原因:
原因补充:

(最多只允许输入30个字)