java changelistener_ListChangeListener.Change
表示对Observablelist进行的更改的报告。
更改可能包含一个或多个实际更改,并且必须由next()方法迭代。
每个更改必须是以下之一:
在这种情况下, 排列变化 : wasPermutated()返回true。
添加或删除的变化 :在这种情况下,至少一个wasAdded() , wasRemoved()返回true。 如果两个方法都返回true, 那么wasReplaced()也将返回true。
getRemoved()方法返回已从列表中替换或删除的元素列表。
from (含)和to (独占)之间的范围表示包含新元素的列表的子列表。 请注意,这是一个半开的间隔,因此如果没有添加元素,则getFrom()等于getTo() 。
可以通过调用getAddedSubList()获取添加元素的列表。
请注意,为了保持单独添加/删除更改的正确索引,这些更改必须按照其from索引进行排序。
更新更改 : wasUpdated()在更新更改时返回true。 from (含)和to (独家)之间的所有元素已更新。
重要提示:这是需要调用next()调用其他任何方法之前方法Change 。
唯一可以随时使用的方法是getList() 。
典型的用法是观察ObservableList上的变化,以便挂钩或取消挂起(或添加或删除侦听器)或为了在该ObservableList中的每个元素上维护一些不变量。 这样做的常见代码模式如下所示:
ObservableList theList = ...;
theList.addListener(new ListChangeListener() {
public void onChanged(Change c) {
while (c.next()) {
if (c.wasPermutated()) {
for (int i = c.getFrom(); i < c.getTo(); ++i) {
//permutate
}
} else if (c.wasUpdated()) {
//update item
} else {
for (Item remitem : c.getRemoved()) {
remitem.remove(Outer.this);
}
for (Item additem : c.getAddedSubList()) {
additem.add(Outer.this);
}
}
}
}
});
}
警告:此类直接访问源列表以获取有关更改的信息。
当列表中发生另一个更改时,这会使“更改”对象无效。
因此, 在不同的线程上使用这个类是不安全的 。
这也意味着不能在监听器内修改源列表,因为这将使所有后续监听器的此Change对象无效。
注意:如果更改包含不同类型的多个更改,则这些更改必须按照以下顺序排列 : 排列更改,添加或删除更改,更新更改这是因为在添加/删除更改后排除更改不会如下改变添加元素的位置。 另一方面,更新更改必须在添加/删除更改后执行,因为它们将其索引引用到列表的当前状态,这意味着应用所有添加/删除更改。
java changelistener_ListChangeListener.Change相关推荐
- Java动态加载一个类的几种方法以及invoke
一.加载一个类的几种方法 接口 IUser package org.me.javaapp;/**** @author Administrator*/ public interface IUser {} ...
- 《图书管理系统——java》
/* (盯着先拔头筹程序) * 该计划的版权声明和版本号 * Copyright (c) 2011, 烟台大学计算机学院学生的学校 * All rights reserved. * 文件名: & ...
- java nio.2群发_JAVA NIO TCP SOCKET 聊天群发
以前都是用一般的socket编程,用线程来控制.最近突然用nio来做些东西. nio的好处我来说一下:第一,读写都是基于块的,效率高.第二,通过引入selector,简化了网络编程模型,异步非阻塞. ...
- Java描述设计模式(11):观察者模式
本文源码:GitHub·点这里 || GitEE·点这里 一.观察者模式 1.概念描述 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式.观察者模式定义了一种一对多 ...
- 利用JAVA计算TFIDF和Cosine相似度-学习版本
写在前面的话,既然是学习版本,那么就不是一个好用的工程实现版本,整套代码全部使用List进行匹配效率可想而知. [原文转自]:http://computergodzilla.blogspot.com/ ...
- inferred type_您最终可以使用var在Java中声明Inferred Type局部变量-这就是为什么它很棒...
inferred type by javinpaul 由javinpaul 您最终可以使用var在Java中声明Inferred Type局部变量-这就是为什么它很棒 (You can finally ...
- 《Java程序设计与数据结构教程(第二版)》学习指导
<Java程序设计与数据结构教程(第二版)>学习指导 目录 图书简况 学习指导 第一章 绪论 第二章 数据和表达式 第三章 使用类和对象 第四章 条件和循环 第五章 编写类 第六章 图形用 ...
- java中GUI中显示当前时间_【java编程】返回当地时间Clock到GUI面板Panel上
用java编程:返回当地时间到GUI面板上. ClockPanel.java /* * To change this template, choose Tools | Templates * and ...
- 人人农场 renren 外挂 Java 实现
看过<被偷无奈写个收菜外挂> http://www.iteye.com/topic/692028 建议大家不要偷菜,因为偷菜如果遇到有狗的.有蜜蜂的将会失掉非常多的金币,本人以前的程序就有 ...
最新文章
- cookie共享子域名
- mybatis-plus 会自动增加 order by_python自动撸支付宝基金答题红包
- Java 从入门到高级学习路线
- linux -- read(), write()
- JAVA构架之并发编程的一些总结
- 代码生成(Code Generation) 表达式编译
- [使用心得]maven2之m2eclipse使用手册之二m2eclipse功能介绍
- HDU 6166 2017 多校训练:Senior Pan(最短路)
- 深度学习自学(二十八):Altas人脸SDK实现之-回调函数
- 原生js实现吸顶导航和回到顶部特效
- 树莓派安装DLNA实现流媒体服务器
- Web漏洞扫描工具AWVS12使用详解
- git通过http的方式下载和提交代码
- 解决旅游行业营销人员痛点的作品策划
- 郑州市暂住证办理过程
- 电脑突然连不上WiFi?按步骤检查
- 小项目----音乐在线播放器
- 在你的应用里使用Jetty嵌入式
- 元柚话TK:海外抖音TikTok+独立站如何搭建?
- Precision,Recall,F1score,Accuracy的理解
热门文章
- 在Ubuntu 14.04 64bit上查看硬件配置信息
- Blender三维建筑场景动画制作学习教程
- 面试前赶紧看了5道Python Web面试题,Python面试题No17
- 学术-数学:哥德巴赫猜想
- 词法作用域和动态作用域
- 几个不错的开源的.net界面控件
- 有关C/C++中,表达式计算顺序的问题,以及表达式内部变量“副作用”问题(转)...
- 如何设置网页自动刷新(JSP,JS,HTML)
- 从Qcheck 1.3 不能在不同操作系统上运行问题(chro124、chro342)说开来------
- linux下安装hadoop