999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

JavaFX中列表視圖的應(yīng)用與研究

2018-03-29 09:03:10郭強(qiáng)

郭強(qiáng)

摘要:JavaFX作為替代了Swing作為Java語(yǔ)言進(jìn)行圖形界面開(kāi)發(fā)的新工具,正在得到越來(lái)越多的開(kāi)發(fā)者的支持[1]。而作為一種新的界面開(kāi)發(fā)工具,相關(guān)教材上對(duì)于其具體應(yīng)用并不詳盡,尤其是對(duì)一些復(fù)雜的組件的介紹,如在這里要介紹的列表視圖組件TableView,作為一個(gè)功能強(qiáng)大的組件,它的使用還存在著許多需要普及和重視的方面,在這里對(duì)TableView的功能進(jìn)行挖掘。

關(guān)鍵詞:JavaFX;TableView;組件

中圖分類(lèi)號(hào):TP393.09 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)01-0106-01

雖然JavaFX已經(jīng)得到Oracle公司和相關(guān)組織的全力支持,但由于Swing存在的時(shí)間長(zhǎng),已經(jīng)得到了廣大開(kāi)發(fā)者的認(rèn)可,很多開(kāi)發(fā)者對(duì)JavaFX的理解并不深刻[2]。而TableView作為JavaFX中的一個(gè)常用的組件,常常用來(lái)進(jìn)行數(shù)據(jù)條目的顯示和操作,其功能非常強(qiáng)大,定義了繁多的API幫助開(kāi)發(fā)者實(shí)現(xiàn)對(duì)數(shù)據(jù)的不同操作,而且自身還具有排序、多重排序等功能。因此能夠深入的理解TableView的使用將會(huì)為程序設(shè)計(jì)開(kāi)發(fā)帶來(lái)非常大的便利,關(guān)于TableView的使用使這里要介紹的內(nèi)容

1 TableView結(jié)構(gòu)

TableView以表格的形式顯示和加載數(shù)據(jù),所以像表格一樣,一個(gè)TableView對(duì)象需要定義它的列,因此TableView經(jīng)常需要和TableColumn、TableCell對(duì)象進(jìn)行組合使用,分別來(lái)指定表格的列和數(shù)據(jù)單元。

1.1 TableView

TableView用以對(duì)數(shù)據(jù)進(jìn)行表格形式的顯示。JavxFX在定義時(shí)賦予了排序,調(diào)整列寬的功能,而TableView的數(shù)據(jù)來(lái)源可以是從數(shù)據(jù)庫(kù)中讀取的數(shù)據(jù)集進(jìn)行加載得到,也可以從開(kāi)發(fā)者定義的ObservableList對(duì)象中獲取。但是終究是要從ObservableList對(duì)象中得到數(shù)據(jù),所以O(shè)bservableList對(duì)象成為了數(shù)據(jù)的來(lái)源。TableView對(duì)象通過(guò)setItems(ObservableLis)方法將數(shù)據(jù)添加。此外當(dāng)ObservableList中的數(shù)據(jù)發(fā)生變化時(shí),TableView中的數(shù)據(jù)顯示可以實(shí)現(xiàn)同步的效果,這一點(diǎn)非常重要。

1.2 數(shù)據(jù)模型

數(shù)據(jù)模型提供了TableView數(shù)據(jù)源的模型,即數(shù)據(jù)的表現(xiàn)形式,在JavaFX中通過(guò)定義類(lèi)來(lái)表述數(shù)據(jù)模型,類(lèi)中的數(shù)據(jù)屬性對(duì)應(yīng)了數(shù)據(jù)源的列名,并需要對(duì)所有的屬性提供public所修飾的set和get方法嗎,而且在這里需要對(duì)方法名提出嚴(yán)格的要求,需要是setXxx或getXxx的形式,如對(duì)于name屬性,需要提供setName和getName方法。而在定義ObservableList對(duì)象的數(shù)據(jù)類(lèi)型時(shí),需要與數(shù)據(jù)模型的類(lèi)型保持一致。

1.3 TableColumn

TableColumn定義了數(shù)據(jù)顯示在TableView中的列名,所以需要讓TableColumn與數(shù)據(jù)模型建立聯(lián)系,讓TableColumn中的每一個(gè)列對(duì)應(yīng)數(shù)據(jù)模型的一個(gè)屬性。

userNameTCloumn = new TableColumn<>( “用戶(hù)名” );

userNameTCloumn.setCellValueFactory( new PropertyValueFactory( “userName” ) );

在這里TableColumn對(duì)象userNameTCloumn定義為一個(gè)名為”用戶(hù)名”的列,通過(guò).setCellValueFactory方法與數(shù)據(jù)模型userInfo的userName建立了聯(lián)系。

最后通過(guò)TableView的getColumns().addAll(TableColumn)方法將TableColumn添加到TableView視圖中。

1.4 TableCell

TableCell作為T(mén)ableView中的一個(gè)數(shù)據(jù)單元而存在,常常用來(lái)加載非數(shù)據(jù)的內(nèi)容,例如加載一個(gè)超鏈接、按鈕或者一張圖片,可以強(qiáng)化TableView的功能。

2 重寫(xiě)方法,豐富TableView功能

上面我們已經(jīng)提到可以通過(guò)使用TableCell來(lái)強(qiáng)化視圖的功能,那么就需要重寫(xiě)相關(guān)方法來(lái)實(shí)現(xiàn)。在這里以顯示超鏈接為列子來(lái)說(shuō)明。

想要在列表視圖TableView中的數(shù)據(jù)單元格中顯示一個(gè)超鏈接,那么首先要操作超鏈接所對(duì)應(yīng)的TableColumn對(duì)象。

TableColumn對(duì)象通過(guò)調(diào)用setCellFactory方法,重寫(xiě)Callback, TableCell>()對(duì)象的public TableCell call( TableColumn param )方法,該方法提供了重寫(xiě)的接口,可以在該方法中定義需要顯示在該列中的組件包括超鏈接、按鈕或者圖片等。

首先定義一個(gè)HyperlinkTableCell對(duì)象,用于承載一個(gè)超鏈接組件,通過(guò).getGraphic()方法得到一個(gè)超鏈接對(duì)象,在這里需要使用強(qiáng)制類(lèi)型轉(zhuǎn)換,在超鏈接對(duì)象上添加事件響應(yīng),通過(guò)setOnAction方法,定義點(diǎn)擊超鏈接時(shí)發(fā)生的事件響應(yīng),實(shí)現(xiàn)界面的跳轉(zhuǎn)。

程序的運(yùn)行結(jié)果如圖1所示。

可以看到數(shù)據(jù)表格中”查看”列是以一個(gè)超鏈接的形式進(jìn)行顯示,這個(gè)TableColumn對(duì)象是被重寫(xiě)的對(duì)象。除此之外還可以通過(guò)類(lèi)似的方式實(shí)現(xiàn)表格數(shù)據(jù)編輯、刪除等功能。

3 結(jié)語(yǔ)

JavaFX是一個(gè)具有光明未來(lái)的界面開(kāi)發(fā)工具,它的用途不僅局限于APP,在互聯(lián)網(wǎng),移動(dòng)開(kāi)發(fā)上也具有強(qiáng)大的功能,對(duì)于它的學(xué)習(xí)還需要更加深入,而本文的TableView作為其中一個(gè)相對(duì)復(fù)雜強(qiáng)大的組件應(yīng)用也顯得非常重要,它的用途也會(huì)被人們所重視。

參考文獻(xiàn)

[1]黃雁.JavaFX技術(shù)初探[J].電腦知識(shí)與技術(shù),2010,06(15):3978-3979.

[2]蔡學(xué)鏞.JavaFX精粹[J].程序員,2007,(11):111-113.

主站蜘蛛池模板: 久爱午夜精品免费视频| 精品国产aⅴ一区二区三区| 黄片在线永久| 国产精品一区不卡| 手机永久AV在线播放| 日韩无码视频播放| 国产成人午夜福利免费无码r| 国产在线无码一区二区三区| 伊人婷婷色香五月综合缴缴情| 国产精品999在线| 欧美日韩激情在线| 不卡无码网| 又黄又湿又爽的视频| 亚洲无码一区在线观看| 国产精品尤物铁牛tv| 人妻中文久热无码丝袜| 成人午夜福利视频| 日韩AV手机在线观看蜜芽| 欧美一区二区三区不卡免费| 色AV色 综合网站| 亚洲色欲色欲www网| 亚洲IV视频免费在线光看| 国产h视频在线观看视频| 日韩国产高清无码| 国产亚洲精品自在线| 91www在线观看| 欧美一级色视频| 亚洲国产系列| 一级成人a做片免费| 日本一区二区三区精品国产| 99激情网| 国产一区二区免费播放| 亚洲第一黄色网| 欧美精品亚洲精品日韩专| 日韩成人在线视频| 婷婷午夜影院| 国产激爽大片在线播放| 久久精品中文无码资源站| 国产成人综合久久| 免费人成网站在线观看欧美| 国产理论最新国产精品视频| 亚洲日韩国产精品综合在线观看| 亚洲成人免费在线| 第一区免费在线观看| 亚洲视频黄| 国产成人精品一区二区| 在线观看免费国产| 久久精品日日躁夜夜躁欧美| a级毛片免费播放| 91精品国产一区| 人与鲁专区| jizz在线观看| 91丝袜乱伦| 国产三级视频网站| 在线欧美日韩国产| 亚洲日韩久久综合中文字幕| 无码丝袜人妻| 福利在线不卡| 欧美a级在线| 国产丝袜精品| 片在线无码观看| 亚洲精品无码AⅤ片青青在线观看| 国产精品蜜芽在线观看| 五月婷婷精品| 麻豆精品久久久久久久99蜜桃| 国产呦精品一区二区三区网站| 国产极品美女在线观看| www.亚洲色图.com| 久久国产av麻豆| 亚洲成aⅴ人在线观看| 日韩精品毛片| 国产va欧美va在线观看| 午夜视频免费试看| 99精品免费欧美成人小视频| 爆操波多野结衣| 91偷拍一区| 国产成人精彩在线视频50| 综合色在线| 伊人久久精品无码麻豆精品 | 天堂中文在线资源| 亚洲国产天堂久久九九九| 国产swag在线观看|