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的時候那一行的對象,具體的業務邏輯就看各位同學的需求是什麼啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章