java去除特定单词_从特定单词中删除突出显示-Java

我想建立一个样本,以从与我的应用程序过滤器匹配的单词中删除突出显示的内容。因此,我将自己基于以下示例:

public void removeHighlights(JTextComponent jTextArea) {

Highlighter hilite = jTextArea.getHighlighter();

Highlighter.Highlight[] hilites = hilite.getHighlights();

for (int i = 0; i < hilites.length; i++) {

if (hilites[i].getPainter() instanceof TextHighLighter) {

hilite.removeHighlight(hilites[i]);

}

}

}

此示例的作用是删除文本区域的所有突出显示。例如,如果我选择了三个单词,并且取消选中其中一个,则所有过滤器都将被删除,而我只想删除未选中单词的突出显示。是否有一种简单的方法来检查哪个单词与过滤器匹配?还是我需要手动进行?直到现在,我发现我的研究没有成功

提前致谢

最后编辑:

基于@camickr答案的逻辑为我工作:

public void removeHighlights(JTextComponent jTextArea, String turnLightOff) {

Highlighter hilite = jTextArea.getHighlighter();

Highlighter.Highlight[] hilites = hilite.getHighlights();

for (int i = 0; i < hilites.length; i++) {

int wordLenght = hilites[i].getEndOffset() - hilites[i].getStartOffset();

if(wordLenght == turnLightOff.length()){

if (hilites[i].getPainter() instanceof TextHighLighter) {

hilite.removeHighlight(hilites[i]);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值