JavaFX缺少的功能调查:表视图
JavaFX的TableView(和TreeTableView)贏得了我最近的“ JavaFX缺失功能”調(diào)查以及許多后續(xù)討論中(尤其是蘇黎世JavaFX Meetup小組的成員 )中提到最多的控件的價(jià)格。 )。 我想原因之一是一個(gè)簡(jiǎn)單的事實(shí),即幾乎每個(gè)應(yīng)用程序都需要一個(gè)表視圖。
TableView最需要的兩個(gè)功能/改進(jìn)是凍結(jié)行/列和更好的編輯支持。
凍結(jié)行/列
- 凍結(jié)/鎖定行–可以使一個(gè)或多個(gè)行停留在表格視圖的頂部或底部。 嘗試在列中顯示值的總和時(shí),通常需要此功能。
- 凍結(jié)/鎖定列–可以將一個(gè)或多個(gè)列保留在表格視圖的左側(cè)或右側(cè)。 同樣,顯示行中值的總和或顯示行的某種標(biāo)題。 對(duì)于我的FlexGanttFX框架,我希望在左側(cè)有一個(gè)列來(lái)顯示行號(hào)(是的,例如在Excel中)。
我認(rèn)為凍結(jié)列/行是TableView計(jì)劃的一項(xiàng)功能,但由于時(shí)間和資源的限制,并沒(méi)有將其納入最終版本。 如果我沒(méi)記錯(cuò)的話,實(shí)際上TableView代碼庫(kù)中有一些用于此目的的遺留代碼/注釋。
編輯支持
- 只需開(kāi)始輸入新值即可編輯單元格值–當(dāng)前,用戶必須先雙擊一個(gè)單元格。
- 流利的鍵盤(pán)導(dǎo)航,可通過(guò)TAB,SHIFT_TAB,ENTER和箭頭鍵從一個(gè)單元格導(dǎo)航到另一個(gè)單元格。
- 編輯值時(shí)的單元格驗(yàn)證。 如果不輸入有效值或取消編輯,用戶將不能離開(kāi)單元格。
當(dāng)前的編輯支持可能是使開(kāi)發(fā)人員在使用TableView時(shí)最討厭的一件事,因?yàn)樗麄冎烙脩粝M玫礁唷?我本人已經(jīng)在兩個(gè)項(xiàng)目上工作過(guò),我們不得不修改TableView,以便它可以讓用戶直接編輯值。
雜
要求的其他功能包括:
- 單元格/行跨度–使單元格跨多個(gè)行和/或列的能力。
- 過(guò)濾器用戶界面–表格視圖通常允許用戶在每列中選擇一個(gè)或多個(gè)過(guò)濾器。 然后,所有過(guò)濾器的集合確定可見(jiàn)行。 在JavaFX中,可以輕松地在模型中完成此操作(通過(guò)SortedList和FilteredList),但是開(kāi)發(fā)人員希望直接在TableView內(nèi)部(在標(biāo)頭內(nèi)部)有內(nèi)置控件。
- 自動(dòng)列大小調(diào)整–一種調(diào)整列寬以適應(yīng)其內(nèi)容的方法,以確保所有值的可讀性。 該功能實(shí)際上是在TableView代碼庫(kù)中實(shí)現(xiàn)的。 當(dāng)用戶雙擊列標(biāo)題的邊緣時(shí),它用于調(diào)整列的大小。 但是,此代碼不是公開(kāi)的。 我最近發(fā)布了一篇文章,展示了如何執(zhí)行此操作 。
我認(rèn)為上述所有功能都是可以通過(guò)良好的表控件實(shí)現(xiàn)的,但是我敢肯定,JavaFX團(tuán)隊(duì)本身不會(huì)在這方面取得任何進(jìn)展。 我認(rèn)為,從Oracle的角度來(lái)看,當(dāng)前的表實(shí)現(xiàn)被認(rèn)為“足夠好”,因此我認(rèn)為由第三方來(lái)提出一個(gè)好的替代方案(開(kāi)源或商業(yè))將取決于第三方。 我就如何實(shí)現(xiàn)自己的表視圖控件進(jìn)行了很多頭腦風(fēng)暴,但得出的結(jié)論是,它太大了,無(wú)法成為一個(gè)簡(jiǎn)單的附帶項(xiàng)目。 這很不好,但這也意味著其他人有可能創(chuàng)造出一種商業(yè)產(chǎn)品并實(shí)際上從中賺錢(qián)。 因?yàn)榫拖裎乙婚_(kāi)始所說(shuō):幾乎所有應(yīng)用程序都需要表視圖。
下一個(gè)“缺少功能”博客將介紹性能和質(zhì)量。
敬請(qǐng)關(guān)注!
PS :對(duì)于上面的某些功能,您可能需要嘗試ControlsFX項(xiàng)目中的SpreadsheetView。
翻譯自: https://www.javacodegeeks.com/2016/02/javafx-missing-features-survey-table-view.html
總結(jié)
以上是生活随笔為你收集整理的JavaFX缺少的功能调查:表视图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 历经多次改进,《赛博朋克 2077》St
- 下一篇: 消息称任天堂新一代 Switch 掌机光