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]);

}

}

}

}

解决方法:

Is there a simple way to check which word matches the filter?

没有.

or do I need to do it manually?

是.每个突出显示都包含突出显示的开始/结束偏移.因此,您可以使用这些值从Document中获取文本.如果文本匹配,则删除突出显示.

标签:jtextarea,java,highlight,swing,swing-highlighter

来源: https://codeday.me/bug/20190725/1533375.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值