国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaFx 關(guān)鍵字高亮文本實現(xiàn)

這篇具有很好參考價值的文章主要介紹了JavaFx 關(guān)鍵字高亮文本實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

原文地址:JavaFx 關(guān)鍵字高亮文本實現(xiàn) - Stars-One的雜貨小窩

整藍奏云批量下載器里的搜索功能想到的一個關(guān)鍵字高亮功能,借助textflow組件來實現(xiàn),記錄一下

本文基于TornadoFx框架進行編寫,封裝工具代碼是kotlin版本

然后也是順便把這個封裝成了stars-one/common-controls
里的xHighLightTextFlow

效果

JavaFx 關(guān)鍵字高亮文本實現(xiàn)

思路

實現(xiàn)思路不是太難,就是要看關(guān)鍵字的位置,然后計算下標

關(guān)鍵字位置有三種情況:

  1. 開頭
  2. 中間
  3. 結(jié)尾

我們需要找到關(guān)鍵字的下標,然后依次創(chuàng)建出對應(yīng)的label,如果是有關(guān)鍵字的label,則設(shè)置一下樣式(背景色為黃色)

之后再將得到的多個label添加到textflow中即可

這里注意下,需要考慮下大小寫的情況,我的做法就是計算坐標的時候,將文本和關(guān)鍵字全部轉(zhuǎn)為小寫來計算,這樣就不會出現(xiàn)問題文章來源地址http://www.zghlxwxcb.cn/news/detail-439500.html

代碼

val myTextFlow = textflow {  }
val keyword = "我的"
val itemTitle = "我的東西22ss11"

//這里轉(zhuǎn)為小寫處理,方便后面得到index
val itemTitleLowcase = itemTitle.toLowerCase()
val keywordLowcase = keyword.toLowerCase()

val keyWordLength = keyword.length

when {
    itemTitleLowcase.startsWith(keywordLowcase) -> {

        //關(guān)鍵字位于開頭
        myTextFlow.apply {
            label(itemTitle.substring(0, keyWordLength)) {
                style {
                    backgroundColor += c("#ffff00")
                }
            }
            label(itemTitle.substring(keyWordLength))
        }
    }
    itemTitleLowcase.endsWith(keywordLowcase) -> {
        val startIndex = itemTitleLowcase.indexOf(keywordLowcase)
        //關(guān)鍵字位于結(jié)尾
        myTextFlow.apply {
            label(itemTitle.substring(0, startIndex))
            label(itemTitle.substring(startIndex, itemTitleLowcase.length)) {
                style {
                    backgroundColor += c("#ffff00")
                }
            }
        }
    }
    else -> {
        //關(guān)鍵字位于中間
        val arr = itemTitleLowcase.split(keywordLowcase)
        val range1 = arr.first().indices
        val range2 = arr.first().length+keyWordLength until itemTitle.length

        myTextFlow.apply {
            label(itemTitle.substring(range1))
            label(keyword) {
                style {
                    backgroundColor += c("#ffff00")
                }
            }
            label(itemTitle.substring(range2))
        }
    }

}

到了這里,關(guān)于JavaFx 關(guān)鍵字高亮文本實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【el-tree查詢并高亮】vue使用el-tree組件,搜索展開并選中對應(yīng)節(jié)點,高亮搜索的關(guān)鍵字,過濾后高亮關(guān)鍵字,兩種方法

    【el-tree查詢并高亮】vue使用el-tree組件,搜索展開并選中對應(yīng)節(jié)點,高亮搜索的關(guān)鍵字,過濾后高亮關(guān)鍵字,兩種方法

    效果圖這樣的,會把所有的有這些的節(jié)點都展開 代碼: 這里的邏輯就是通過遞歸循環(huán)把所有和匹配的節(jié)點篩選出來 然后通過setCheckedKeys方法把他展開選中 然后通過filterReal把高亮標藍 這個是用的官方文檔的那個過濾方式,可以參考官方文檔看一下。 只不

    2024年02月15日
    瀏覽(172)
  • 用ES搜索關(guān)鍵字并且返回模糊字段高亮

    用ES搜索關(guān)鍵字并且返回模糊字段高亮

    ? ?一般來說,各個網(wǎng)站,首頁的搜索,都會有進行全文搜索的示例,并且把模糊匹配的多個數(shù)據(jù)進行標記(高亮),這樣便于全局檢索關(guān)鍵的數(shù)據(jù),便于客戶進行瀏覽?;诖耍疚暮唵谓榻B這種功能基本java 的 實現(xiàn) ? ?由于公司頁面此功能隱藏了,本文就以接口調(diào)用返回看具

    2024年02月14日
    瀏覽(22)
  • 【VSCode】設(shè)置關(guān)鍵字高亮的插件 | Highlight Word

    【VSCode】設(shè)置關(guān)鍵字高亮的插件 | Highlight Word

    本文主要介紹在 VSCode 看代碼時,怎樣使某個單詞高亮顯示,主要通過以下三步實現(xiàn): 安裝 highlight-words 插件 配置 highlight-words 插件 設(shè)置高亮快捷鍵F8 工作是嵌入式開發(fā)的,代碼主要是C/C++的,之前一直用 source insight 4 看代碼,最近轉(zhuǎn)到 VSCode ,使用 VSCode 看代碼時,發(fā)現(xiàn)它居

    2024年02月11日
    瀏覽(99)
  • Vue中實現(xiàn)自動匹配搜索框內(nèi)容 關(guān)鍵字高亮文字顯示

    Vue中實現(xiàn)自動匹配搜索框內(nèi)容 關(guān)鍵字高亮文字顯示

    實現(xiàn)效果如下: ?1.首先需要給輸入框進行雙向綁定 ?2.拿到搜索的結(jié)果去渲染頁面? 將返回的結(jié)果和搜索的進行比對 如果相同的 就變紅 上代碼 html部分 js部分

    2024年02月12日
    瀏覽(18)
  • 用 Python 從單個文本中提取關(guān)鍵字的四種超棒的方法

    用 Python 從單個文本中提取關(guān)鍵字的四種超棒的方法

    自然語言處理分析的最基本和初始步驟是提取,在NLP中,我們有許多算法可以幫助我們提取文本數(shù)據(jù)的。本文中,云朵君將和大家一起學(xué)習(xí)四種即簡單又有效的方法,它們分別是 Rake、Yake、Keybert 和 Textrank 。并將簡單概述下每個方法的使用場景,然后使用附加示

    2023年04月08日
    瀏覽(15)
  • 【C++干貨基地】面向?qū)ο蠛诵母拍?const成員函數(shù) | 初始化列表 | explicit關(guān)鍵字 | 取地址重載

    【C++干貨基地】面向?qū)ο蠛诵母拍?const成員函數(shù) | 初始化列表 | explicit關(guān)鍵字 | 取地址重載

    ?? 鴿芷咕 :個人主頁 ??? 個人專欄 : 《C++干貨基地》《粉絲福利》 ??生活的理想,就是為了理想的生活! ??哈嘍各位鐵汁們好啊,我是博主鴿芷咕《C++干貨基地》是由我的襄陽家鄉(xiāng)零食基地有感而發(fā),不知道各位的城市有沒有這種實惠又全面的零食基地呢?C++ 本身作

    2024年04月23日
    瀏覽(21)
  • 用python實現(xiàn)給出關(guān)鍵字查找并標注pdf文件中關(guān)鍵字

    要在Python中標注PDF文件中的,可以使用Python的PDFMiner庫和Python的matplotlib庫。 首先,需要安裝這兩個庫??梢允褂胮ip命令進行安裝: shell 復(fù)制代碼 pip install pdfminer.six matplotlib 接下來,可以使用以下代碼實現(xiàn)查找和標注功能: python 復(fù)制代碼 import pdfminer ? from pdf

    2024年01月16日
    瀏覽(89)
  • 【iOS】weak關(guān)鍵字的實現(xiàn)原理

    【iOS】weak關(guān)鍵字的實現(xiàn)原理

    關(guān)于什么是weak可以去看看我以前的一篇博客:【OC】 屬性 SideTable 這個結(jié)構(gòu)體,前輩給它總結(jié)了一個很形象的名字叫引用計數(shù)和弱引用依賴表,因為它主要用于管理對象的引用計數(shù)和 weak 表。在 NSObject.mm 中聲明其數(shù)據(jù)結(jié)構(gòu): slock是為了防止競爭選擇的自旋鎖 r

    2024年02月16日
    瀏覽(21)
  • Java中的volatile關(guān)鍵字實現(xiàn)原理

    在并發(fā)編程中,線程之間的可見性問題是非常重要的一項難題。Java中提供了一種解決并發(fā)可見性問題的機制,即volatile。 在本文中,我們將會講解Java中volatile的實現(xiàn)原理,為什么它能夠保證可見性,以及背后的實現(xiàn)原理涉及到的內(nèi)存屏障和JVM屏障等內(nèi)容。在學(xué)習(xí)

    2023年04月27日
    瀏覽(21)
  • Python批量實現(xiàn)word中查找關(guān)鍵字

    Python批量實現(xiàn)word中查找關(guān)鍵字

    ?一、背景 ????????在日常辦公和文檔處理中,我們常常需要在大量的Word文檔中查找特定的,然后進行接下來的操作,比如替換等。手動逐個打開并搜索文檔顯然是費時費力的。因此,利用Python編寫一個批量實現(xiàn)Word中查找的程序可以大大提高效率和減

    2024年02月16日
    瀏覽(126)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包