java8函数式接口和Lambda表达式应用在javaFX中tableView自定义点击事件

java8的函数式接口大家应该不陌生了, 函数式接口,@FunctionalInterface,简称FI,简单的说,FI就是指仅含有一个抽象方法的接口,以@Functionalnterface标注

比如:


Lambda表达式使用过java8的同学应该也会觉得用起来很舒服

比如:



那么如何将java8和函数式接口 Lambad表达式和我们javaFX客户端开发中 table表格的双击事件联系起来呢?


首先如上文 定义了一个ClickItem的接口,有一个抽象方法click,参数是一个泛型(方便扩展)


然后写一个方法


这个方法的首先传一个table进去,是你要操作的table,给这个table的rowFactory重新定义

定义的逻辑是先new一个TableRow出来,同样参数是泛型(方便扩展)

给这个row设置一个点击点击事件

在点击事件中判断点击的次数是否和传的第三个参数相同,并且点击的row是否有数据

如果同时满足就将这个row里存放的对象T拿出来

然后调用我们第二个参数ClickItem这个接口的方法

这样再在具体的页面中去实现这个接口的方法就可以做到自定义任意次数的点击事件和处理逻辑了


如下:


 通过注解@PostConstruct在初始化的时候给这个table就绑定了事件,传入2表示双击事件,user就是点击

table的时候那一行的对象,具体的业务逻辑就看各位同学的需求是什么啦!

猜你喜欢

转载自blog.csdn.net/phcgld1314/article/details/78028995