日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaFX技巧3:使用回调接口

發(fā)布時間:2023/12/3 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaFX技巧3:使用回调接口 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作為UI框架開發(fā)人員,提供自定義控件外觀和行為的方法是我工作的一部分。 在許多情況下,這是通過允許框架用戶在控件上注冊工廠來完成的。 過去,我會為此創(chuàng)建一個工廠接口,并在框架內(nèi)提供一個或多個默認實現(xiàn)。

這些事情在JavaFX中的處理方式有所不同,我已經(jīng)開始為自己的工作而接受它了。 JavaFX使用一個稱為javafx.util.Callback的通用接口,只要需要一段代碼即可為給定參數(shù)(P)生成結(jié)果(R)的地方。

該界面如下所示:

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

優(yōu)點

起初,我不喜歡使用此接口,因為我的代碼太冗長:我不再擁有不解釋的接口名稱。 但最后我意識到優(yōu)勢在于缺乏詳細性。 優(yōu)點是:

  • 我們最終減少了編寫代碼。 沒有專用接口,沒有默認實現(xiàn)。
  • 使用API??的開發(fā)人員不必記住不同的工廠,而是可以專注于要創(chuàng)建的對象以及對他可用的參數(shù)。
  • 回調(diào)接口是功能接口。 我們可以使用Lambda表達式,這使代碼更加優(yōu)雅,并且我們不得不再次編寫更少的代碼。

案例分析

FlexGanttFX框架包含一個名為Dateline的控件,用于顯示(驚奇)日期。 每個日期都顯示在其自己的單元格中。 日界線可以顯示不同的時間單元(ChronoUnit從java.time,和從SimpleUnit FlexGanttFX)。 工廠方法用于根據(jù)所示的時間單位構(gòu)建單元。

在使用回調(diào)方法之前,我遇到以下情況:一個名為DatelineCellFactory的接口,其中只有一個方法createDatelineCell() 。 我提供了兩個默認實現(xiàn),分別稱為ChronoUnitDatelineCellFactory和SimpleUnitDatelineCellFactory 。 通過使用回調(diào),我能夠刪除所有三個接口/類,并且在日期行的外觀中找到了以下兩行:

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

總結(jié)

以上是生活随笔為你收集整理的JavaFX技巧3:使用回调接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。