javafx 调用接口_JavaFX技巧3:使用回调接口

javafx 调用接口

作为UI框架开发人员,提供自定义控件外观和行为的方法是我工作的一部分。 在许多情况下,这是通过允许框架用户在控件上注册工厂来完成的。 过去,我会为此创建一个工厂接口,并在框架内提供一个或多个默认实现。

这些事情在JavaFX中的处理方式有所不同,我开始为自己的工作而接受它。 JavaFX使用一个称为javafx.util.Callback的通用接口,只要需要一段代码即可为给定参数(P)生成结果(R)的地方。

该界面如下所示:

public interface Callback<P,R> {public R call(P param);
}

优点

起初,我不喜欢使用此接口,因为我的代码太冗长:我不再拥有不解自明的接口名称。 但最后我意识到优势在于缺乏详细性。 优点是:

  • 我们最终减少了编写代码。 没有专用接口,没有默认实现。
  • 使用API​​的开发人员不必记住不同的工厂,而是可以专注于要创建的对象以及对他可用的参数。
  • 回调接口是功能接口。 我们可以使用Lambda表达式,这使代码更加优雅,并且我们不得不再次编写更少的代码。

案例分析

FlexGanttFX框架包含一个名为Dateline的控件,用于显示(惊奇)日期。 每个日期都显示在其自己的单元格中。 日界线可以显示不同的时间单元(ChronoUnit从java.time,和从SimpleUnit FlexGanttFX)。 工厂方法用于根据所示的时间单位构建单元。

在使用回调方法之前,我遇到以下情况:一个名为DatelineCellFactory的接口,其中只有一个方法createDatelineCell() 。 我提供了两个默认实现,分别称为ChronoUnitDatelineCellFactorySimpleUnitDatelineCellFactory 。 通过使用回调,我能够删除所有三个接口/类,并且在日期行的外观中找到了以下两行:

dateline.setCellFactory(<span class="skimlinks-unlinked">SimpleUnit.class</span>,unit -> new SimpleUnitDatelineCell());dateline.setCellFactory(<span class="skimlinks-unlinked">ChronoUnit.class</span>,unit -> new ChronoUnitDatelineCell());

两行代码而不是三个文件! 我认为这个例子说明了一切。

翻译自: https://www.javacodegeeks.com/2014/04/javafx-tip-3-use-callback-interface.html

javafx 调用接口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341700.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业串口服务器如何使用

串口联网服务器让传统的RS-232/422/485设备立即联网&#xff0c;利用基于TCP/IP的串口数据流传输的实现来控制管理的设备硬件是专为串口转以太网设计连接的桥梁。那么&#xff0c;我们该如何正确使用工业串口服务器呢&#xff1f;接下来我们就跟随飞畅科技的小编一起来看看吧&a…

JMetro 5.5版发布

JMetro 5.5版刚刚发布。 进行了重大更新&#xff0c;其中添加了一些错误修复&#xff0c;样式和功能。 一个新的主题测试器示例应用程序也已添加到示例子项目中&#xff0c;该应用程序测试了几项内容&#xff0c;例如控件之间的对齐。 我将尽量使这篇文章简短&#xff0c;因为…

关于工业级RS485串口服务器的组网方式详解

工业级串口服务器提供串口转网络功能&#xff0c;是实现串口&#xff08;TTL串口或RS232/RS485/RS422&#xff09;数据与TCP/IP协议数据相互转换实现数据通过网络传输的工业互联通讯设备。通过连接多个串口设备并将串口数据流进行选择和处理&#xff0c;将串口数据转换为以太网…

什么是四路串口服务器?

四路串口RS232/RS422/RS485设备联网服务器&#xff08;以下简称&#xff1a;串口服务器&#xff09;是由杭州飞畅科技自主研发的串口设备联网产品&#xff0c;其中RS232/RS422/RS485可以任意组合使用(客户可定制&#xff09;。那么&#xff0c;什么是四路串口服务器&#xff1f…

Java中的代理设计模式

代理对象或代理对象为另一个对象提供占位符&#xff0c;以控制对该对象的访问。 代理充当原始对象的轻量级版本或简化版本。 它支持与原始对象相同的操作&#xff0c;但可以将那些请求委托给原始对象以实现它们。 代理设计模式是一种结构模式&#xff0c;其中代理类包装了实际…

光模块简介、结构介绍及分类详解

光模块(optical module)由光电子器件、功能电路和光接口等组成&#xff0c;光电子器件包括发射和接收两部分。简单的说&#xff0c;光模块的作用就是光电转换&#xff0c;发送端把电信号转换成光信号&#xff0c;通过光纤传送后&#xff0c;接收端再把光信号转换成电信号。接下…

光模块是怎么分类的?光模块的应用及作用有哪些?

光模块是进行光电和电光转换的光电子器件。光模块的发送端把电信号转换为光信号&#xff0c;接收端把光信号转换为电信号。光模块按照封装形式分类&#xff0c;常见的有SFP&#xff0c;SFP&#xff0c;SFF&#xff0c;千兆以太网路界面转换器&#xff08;GBIC&#xff09;等。那…

仿制药名言_仿制药的美丽与陌生

仿制药名言最近&#xff0c;我正在为Oracle认证专家Java SE 7程序员考试做准备&#xff0c;而我恰巧在Java泛型领域遇到了一些看起来很奇怪的构造。 但是&#xff0c;我也看到了一些巧妙而优雅的代码。 我发现这些示例值得分享&#xff0c;这不仅是因为它们可以使您的设计选择更…

如何区分光猫、路由器和交换机?

如今&#xff0c;网络已经进入了千家万户&#xff0c;上网已成为了我们生活中必不可少的事情。通常&#xff0c;在家里最常见的网络设备有&#xff1a;光猫&#xff08;光调制解调器&#xff09;、路由器、交换机&#xff0c;但很多小白用户并不能轻易区分它们。当遇上网络故障…

Java 12:开关表达式

在Java 12中&#xff0c;对switch语句进行了增强&#xff0c;以便可以将其用作表达式。 现在也可以在一种情况下打开多个常量&#xff0c;从而使代码更简洁易读。 这些增强是预览语言功能 &#xff0c;这意味着必须使用--enable-preview标志在Java编译器和运行时中显式启用它们…

什么是网络延长器?

网络延长器就是能够把网络传输距离有效延长的设备&#xff0c;网络延长器能够突破传统以太网传输距离100米以内的限制&#xff0c;可以通过双绞线将100M网络传输500米&#xff0c;10M网络传输1500米甚至更长。它将网络的传输距离的极限从铜线的100米扩展到千米以上&#xff0c;…

什么是延长器?延长器常见类型介绍

延长器是用来延长信号的器件&#xff0c;通常用于长距离直连线材无法满足传输要求的情况&#xff0c;一般是为了确保信号长距离无衰减的传输而设计&#xff0c;因此多是有源的。那么&#xff0c;什么是延长器&#xff1f;延长器的常见类型有哪些呢&#xff1f;接下来我们就一起…

solr 模糊匹配_Solr中的前缀和后缀匹配

solr 模糊匹配搜索引擎都是关于查找字符串的。 用户输入一个查询词&#xff0c;然后从反向索引中检索它。 有时&#xff0c;用户正在寻找的值只是索引中值的子字符串&#xff0c;并且用户可能也对这些匹配感兴趣。 对于德语这样的包含复合词&#xff08;如Semmelkndel&#xff…

视频编解码器常见问题介绍

视频编解码器&#xff0c;是指一个能够对数字视频进行压缩或者解压缩的程序或者设备。通常这种压缩属于有损数据压缩。历史上&#xff0c;视频信号是以模拟形式存储在磁带上的。那么&#xff0c;我们在使用视频编解码器的过程中遇到的一些常见问题有哪些呢&#xff1f;接下来我…

Java中的双重检查锁定

在本文中&#xff0c;我们将介绍在RxJava中创建Singleton对象的一些技术。 最重要的是&#xff0c;我们将学习Java中的双重检查锁定 。 Java中的Singleton模式是一种创新模式。 随着时间的流逝&#xff0c;人们开始关注Singleton模式的使用和实现。 这是由于单例的实现和使用方…

视频干扰的原因及解决方法

我们在视频监控和视频传输会议中常常会遇到视频信号被干扰的困扰&#xff0c;由于视频干扰产生画面抖动、显示模糊等显示问题&#xff0c;严重影响使用效果。那么这些干扰信号时如何产生的&#xff0c;又该如何解决呢&#xff1f;接下来我们就跟随飞畅科技的小编一起来详细了解…

网络监控系统安装的4种方式,安防必备

现如今&#xff0c;随着人们安防意识的提高&#xff0c;监控从业人员也越来越多。对于刚刚加入这个行业的新人来讲&#xff0c;可能首先要从最基层的监控设备安装做起。只有在实践中不断积累经验技术&#xff0c;才有可能独当一面、快速成长。作为一名新手&#xff0c;网络监控…

it编年史_Java的编年史和低延迟

it编年史总览 我正在看Typesafe的Rolan Kuhn在介绍React流方面的精彩演讲&#xff0c;乍一看似乎与《纪事报》有一些相似的目标&#xff0c;但是当您深入研究细节时&#xff0c;很明显我有一些关键的假设根本不同。 关键假设 《纪事》设计的主要假设是 低延迟是您的问题&#…

智慧磐石工程项目系统组成

武警部队智慧磐石工程以五防一体化建设为基础&#xff0c;融入各类前沿智能检测、识别、控制等相关技术&#xff0c;通过整合指挥、监控、防护、报警、通信、处置要素&#xff0c;实现信息智能管理、环境智能分析、通道智能防范、监控智能识别、险情智能感知、枪弹智能管控、情…

网络延长器分为哪几类?其应用领域有哪些?

网络延长器具有超低传输时延&#xff0c;能够线速转发数据包。网络延长器采用自主产权的LRE&#xff08;Long- Reacher Ethernet&#xff09;长线以太网驱动技术&#xff0c;能有效延长以太网传输距离达700米&#xff0c;同时保障最大传输带宽。基本原理是通过信号整形放大&…