发明内容
本申请所要解决的技术问题是提供一种表格组件处理方法能够在视觉上和逻辑上都可以对列进行隐藏或显示操作。
相应的,本申请还提供了对应的表格组件处理装置。
为了解决上述问题,本申请公开了一种表格组件处理方法,包括:
控制器获取用户控制指令,所述控制指令至少包括列标识;
所述控制器根据所述控制指令发布属性改变事件,所述属性改变事件对应所述列标识;
第一列模型监听到所述属性改变事件后,根据列标识在第二列模型中找到对应列,并进行对应操作;
第二列模型根据操作后的列数据通知控制器刷新界面。
进一步的,所述控制器获取用户控制指令,所述控制指令至少包括列标识包括:
控制器根据用户操作生成控制指令,所述控制指令包括:列隐藏指令或列显示指令。
进一步的,所述控制器根据所述控制指令发布属性改变事件包括:
当所述控制指令为列隐藏指令时,所述控制器设置列标识对应列hidden为true,并发布属性改变事件;
当所述控制指令为列显示指令时,所述控制器设置列标识对应列hidden为false,并发布属性改变事件。
进一步的,所述第一列模型监听到属性改变事件后,根据列标识在第二列模型中找到对应列,并进行对应操作包括:
所述第一列模型通过监听器监听到属性改变事件后,根据列标识在第二列模型中找到对应列;
当所述属性改变事件对应的列hidden为true时,删除第二列模型中对应列;
当所述属性改变事件对应的列hidden为false时,向第二列模型提供对应列。
进一步的,所述第一列模型监听到属性改变事件后,根据列标识在第二列模型中找到对应列,并进行对应操作包括:
第一列模型监听到属性改变事件后,根据列标识在作为代理列模型的第二列模型中找到对应列,并进行对应操作。
本发明还提供了一种表格组件处理装置,包括控制器、第一列模型和第二列模型:
所述控制器,用于获取用户控制指令,所述控制指令至少包括列标识;根据所述控制指令发布属性改变事件,所述属性改变事件对应所述列标识;
所述第一列模型,用于监听到所述属性改变事件后,根据列标识在所述第二列模型中找到对应列,并进行对应操作;
所述第二列模型,用于根据操作后的列数据通知所述控制器刷新界面。
进一步的,所述控制器获用于:
根据用户操作生成控制指令,所述控制指令包括:列隐藏指令或列显示指令。
进一步的,所述控制器还用于:
当所述控制指令为列隐藏指令时,设置列标识对应列hidden为true,并发布属性改变事件;
当所述控制指令为列显示指令时,设置列标识对应列hidden为false,并发布属性改变事件。
进一步的,所述第一列模型还用于:
通过监听器监听到属性改变事件后,根据列标识在第二列模型中找到对应列;
当所述属性改变事件对应的列hidden为true时,删除第二列模型中对应列;
当所述属性改变事件对应的列hidden为false时,向第二列模型提供对应列。
进一步的,所述第二列模型为第一列模型的代理列模型。
与现有技术相比,本申请包括以下优点:本发明实施例通过一个代理的列模型提供给控制器不包括隐藏列的数据,控制器刷新显示界面时因为获得的数据不包含隐藏列的数据,所以实现真正的列隐藏,提高了用户体验。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请一种表格组件处理方法,包括:
在本发明实施例中,为第一列模型设置一个代理列模型即第二列模型。
本发明实施例主要用来控制Java Swing表格组件中列的隐藏和显示。
步骤S101、控制器获取用户控制指令,所述控制指令至少包括列标识;
进一步的,所述控制器获取用户控制指令,所述控制指令至少包括列标识包括:
控制器根据用户操作生成控制指令,所述控制指令包括:列隐藏指令或列显示指令。
当用户需要隐藏java swing组件中JTable(表格)组件中某一列隐藏或者显示时,可以通过相应操作,此时控制器获取到根据用户操作生成的控制指令,该控制指令至少包括用户需要隐藏的目标列的列标识,以及针对该目标列的操作方式(隐藏或显示)。
步骤S102、控制器根据所述控制指令发布属性改变事件,所述属性改变事件对应所述列标识;
进一步的,所述控制器根据所述控制指令发布属性改变事件包括:
当所述控制指令为列隐藏指令时,所述控制器设置列标识对应列hidden为true,并发布属性改变事件;
当所述控制指令为列显示指令时,所述控制器设置列标识对应列hidden为false,并发布属性改变事件。
当用户控制指令对应操作为隐藏时,控制器根据列标识查找到对应列的hidden,并修改该hidden为true然后发布属性改变事件,当用户控制指令对应操作为显示时控制器根据列标识查找到对应列的hidden,并修改该hidden为false然后发布属性改变事件。
步骤S103、第一列模型监听到所述属性改变事件后,根据列标识在第二列模型中找到对应列,并进行对应操作;
进一步的,所述第一列模型监听到属性改变事件后,根据列标识在第二列模型中找到对应列,并进行对应操作包括:
所述第一列模型通过监听器监听到属性改变事件后,根据列标识在第二列模型中找到对应列;
当所述属性改变事件对应的列hidden为true时,删除第二列模型中对应列;
当所述属性改变事件对应的列hidden为false时,向第二列模型提供对应列。
进一步的,所述第一列模型监听到属性改变事件后,根据列标识在第二列模型中找到对应列,并进行对应操作包括:
第一列模型监听到属性改变事件后,根据列标识在作为代理列模型的第二列模型中找到对应列,并进行对应操作。
第一列模型通过监听器监听控制器,当控制器发布属性改变事件时,第一列模型通过监听器获知该属性改变事件,然后根据该属性改变事件进行操作。需要说明的是,第二列模型是第一列模型的代理,所以第一列模型获知属性改变事件后,根据列标识在第二列模型中找到对应列并进行对应操作。
步骤S104、第二列模型根据操作后的列数据通知控制器刷新界面。
第一列模型对第二列模型的数据进行删除或者添加后,第二列模型根据删除或添加后的数据通知控制器刷新界面,在隐藏操作中,控制器因为获取的数据中是不包含目标列数据的,所以当控制器刷新界面时,因为没有目标列数据所以界面就不会显示目标列数据,实现了真正的列隐藏。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本发明还提供了一种表格组件处理装置,包括控制器21、第一列模型22和第二列模型23:
所述控制器21用于获取用户控制指令,所述控制指令至少包括列标识;根据所述控制指令发布属性改变事件,所述属性改变事件对应所述列标识;
所述第一列模型22,用于监听到所述属性改变事件后,根据列标识在所述第二列模型23中找到对应列,并进行对应操作;
所述第二列模型23,用于根据操作后的列数据通知所述控制器21刷新界面。
进一步的,所述控制器21获用于:
根据用户操作生成控制指令,所述控制指令包括:列隐藏指令或列显示指令。
进一步的,所述控制器21还用于:
当所述控制指令为列隐藏指令时,设置列标识对应列hidden为true,并发布属性改变事件;
当所述控制指令为列显示指令时,设置列标识对应列hidden为false,并发布属性改变事件。
进一步的,所述第一列模型22还用于:
通过监听器监听到属性改变事件后,根据列标识在第二列模型23中找到对应列;
当所述属性改变事件对应的列hidden为true时,删除第二列模型23中对应列;
当所述属性改变事件对应的列hidden为false时,向第二列模型23提供对应列。
进一步的,所述第二列模型23为第一列模型22的代理列模型。
当用户需要隐藏swing组件中JTable(表格)组件中某一列隐藏或者显示时,可以通过相应操作,此时控制器21获取到根据用户操作生成的控制指令,该控制指令至少包括用户需要隐藏的目标列的列标识,以及针对该目标列的操作方式(隐藏或显示)。
当用户控制指令对应操作为隐藏时,控制器21根据列标识查找到对应列的hidden,并修改该hidden为true然后发布属性改变事件,当用户控制指令对应操作为显示时,控制器21根据列标识查找到对应列的hidden,并修改该hidden为false然后发布属性改变事件。
第一列模型22通过监听器监听控制器21,当控制器21发布属性改变事件时,第一列模型22通过监听器获知该属性改变事件,然后根据该属性改变事件进行操作。需要说明的是,第二列模型23是第一列模型22的代理,所以第一列模型22获知属性改变事件后,根据列标识在第二列模型23中找到对应列并进行对应操作。
第一列模型22对第二列模型23的数据进行删除或者添加后,第二列模型23根据删除或添加后的数据通知控制器21刷新界面,在隐藏操作中,控制器21因为获取的数据中是不包含目标列数据的,所以当控制器21刷新界面时,因为没有目标列数据所以界面就不会显示目标列数据,实现了真正的列隐藏。
以上对本申请所提供的一种表格组件处理方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。