Swinghacks——带搜索功能的JTextArea

本文介绍如何使用Java正则表达式进行文本搜索,并实现搜索结果的高亮显示。通过具体代码示例,展示了如何获取匹配字符串的起始和结束位置,进而设置选中状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先上图看效果:


搜索匹配用的是正则表达式,当然直接字符匹配也是ok的,关键不在与怎么匹配,关键是获取匹配结果的开始和结束位置

关于java正则表达式的使用,可以参考这2篇文章

java使用正则表达式http://blog.youkuaiyun.com/laizhenhai88/article/details/7293418

正则表达式基础http://blog.youkuaiyun.com/laizhenhai88/article/details/7267650

回到hacks,匹配完成后,就是设置匹配内容为选中状态,上代码:

如果会用正则的话,那你肯定知道matcher是什么,不解释了

    private void continueSearch() {
        if(matcher != null) {
            if(matcher.find()) {
            	//获取匹配字符的start,并设置光标
                content.getCaret().setDot(matcher.start());
                //获取匹配字符的end,并设置光标
                content.getCaret().moveDot(matcher.end());
                content.getCaret().setSelectionVisible(true);
            }
        }
    }


Java编程语言一般是和重要的企业级应用程序联系在一起的,运行它们的服务器可能主位于蒙大拿的某个冰冷的机房里。不过,是桌面应用催生了Java,未来也必将是桌面应让Java能更加光彩夺目。通过AWT和现在的Swing,Java为编写图形化用户界面提供了丰富的客户端API。不过想要让Java、AWT和Swing达到最佳性能并不容易(也不方便),特别是在模拟交互式Web站点或像Windows XP和Mac OS X这样的操作系统外观时更是如此。\r\n 本书能帮助JAVA开发人员跳过Swing的基础节直接让桌面应用程序贴近现实。如果读者是一个Java开人员,并想开发有一流外观的企业级应用程序,那就应该掌握Swing。不过对Swing的hack并不仅仅局限于对它的正常使用,而是关于一些读者或许要经过多年才能领会到的技巧。它们是一些富有创造性的、原创的甚至是诡异的hack,能让读者发出由衷的惊叹:“我可没想过居然能用Swing干这个!”\r\n 在本书中,读者将学到:\r\n 过滤不用的列表控件,对用户的输入做出合适的反应;\r\n 为列表和组合框组件提供拖放功能;\r\n 在图形组件之间实现动态效果,并能创建动态列表式界面;\r\n 控制任何方面,从鼠标指针到光标,乃至闪动键盘灯;\r\n 在Swing中构建分层、覆盖组件并灵活使用透明窗格屏蔽Swing接口内部的复杂细节和伸缩性。 ================================== 对学习SWING很有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值