当前位置:  技术问答>java相关

怎样实现“查找”功能。(一定给分!)

    来源: 互联网  发布时间:2015-11-14

    本文导语:  初学JAVA,用JAVA作了一个文本编辑器,不知道怎样才能实现象Windows记事本中的查找功能。 例如:文本区中有一篇文章,在查找框中输入某关键字,点击查找按扭后找出关键字在文本中的位置。(用高亮度或其他颜色显...

初学JAVA,用JAVA作了一个文本编辑器,不知道怎样才能实现象Windows记事本中的查找功能。
例如:文本区中有一篇文章,在查找框中输入某关键字,点击查找按扭后找出关键字在文本中的位置。(用高亮度或其他颜色显示出来)。
请各位指点,或者哪里有类似源代码请告知。谢了!一定给分!

|
找段网上的例子,供你参考:

    else if(ae.getSource() == menuEditFind) {
      JDialog ds = new JDialog(this, "Find", true);
      ds.getContentPane().setLayout(new FlowLayout());
      ds.setResizable(false);
      final JLabel dsMessage1 = new JLabel("   Found counts:  ");
      final JLabel dsMessage2 = new JLabel(" 0");
      final Checkbox dsLoop = new Checkbox("Loop   ");
      dsLoop.setState(findingLoop);
      final Checkbox dsMatchCase = new Checkbox("Match Case  ");
      final TextField tfs = new TextField(15);
      ds.getContentPane().add(tfs);
      tfs.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          int a = 0, b = 0;
          String str1, str2, str3, str4, strA, strB;
          str1 = ta.getText();
          str2 = str1.toLowerCase();
          str3 = tfs.getText();
          str4 = str3.toLowerCase();
          if(dsMatchCase.getState()) {
            strA = str1;
            strB = str3;
          }
          else {
            strA = str2;
            strB = str4;
          }
          a = strA.indexOf(strB, FindStartPos);
          if(a > -1) {
            ta.setCaretPosition(a);
            b = tfs.getText().length();
            ta.select(a, a + b);
            FindStartPos = a + b;
            foundCount++;
            dsMessage2.setText(foundCount + "");
          }
          else {
            if(dsLoop.getState()) {
              JOptionPane.showMessageDialog(null, "End of file.", "Find result", JOptionPane.INFORMATION_MESSAGE);
              FindStartPos = 0;
            }
            else {
              JOptionPane.showMessageDialog(null, "End of file.", "Find result", JOptionPane.INFORMATION_MESSAGE);
            }
            foundCount = 0;
          }
        }
      });
      Button bs = new Button("   Find  ");
      //same as tfs.addActionListener(new ActionListener() {
      bs.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          int a = 0, b = 0;
          String str1, str2, str3, str4, strA, strB;
          str1 = ta.getText();
          str2 = str1.toLowerCase();
          str3 = tfs.getText();
          str4 = str3.toLowerCase();
          if(dsMatchCase.getState()) {
            strA = str1;
            strB = str3;
          }
          else {
            strA = str2;
            strB = str4;
          }
          a = strA.indexOf(strB, FindStartPos);
          if(a > -1) {
            ta.setCaretPosition(a);
            b = tfs.getText().length();
            ta.select(a, a + b);
            FindStartPos = a + b;
            foundCount++;
            dsMessage2.setText(foundCount + "");
          }
          else {
            if(dsLoop.getState()) {
              JOptionPane.showMessageDialog(null, "End of file.", "Find result", JOptionPane.INFORMATION_MESSAGE);
              FindStartPos = 0;
            }
            else {
              JOptionPane.showMessageDialog(null, "End of file.", "Find result", JOptionPane.INFORMATION_MESSAGE);
            }
            foundCount = 0;
          }
        }
      });
      Button bsc = new Button("Cancel");
      bsc.addActionListener(new ActionListener() {
                              public void actionPerformed(ActionEvent e) {
                                dispose();
                                foundCount = 0;
                              }
                           });
      ds.getContentPane().add(bs);
      ds.getContentPane().add(bsc);
      ds.getContentPane().add(dsLoop);
      ds.getContentPane().add(dsMatchCase);
      ds.getContentPane().add(dsMessage1);
      ds.getContentPane().add(dsMessage2);
      ds.setLocation(120, 120);
      ds.addWindowListener(new WindowAdapter() {
                             public void windowClosing(WindowEvent e) {
                               dispose();
                               FindStartPos = 0;
                             }
                           });
      ds.setSize(260,110);
      ds.setVisible(true);
    }

|
利用java string 的 indexOf 方法,等于-1是不存在了!

|
具体不大清楚,好象先建立一个模式,当然模式中包含要匹配的字符串,之后调用
该模式的match方法,该方法有一个参数就是你的计事本中的字符串。

|
gz

    
 
 

您可能感兴趣的文章:

  • HASH查找的程序实现及性能分析
  • find命令怎么用能够实现不递归查找子目录?
  • linux下grep命令实现查找多个关键字(与关系和或关系)
  • 在linux实现在任意给定的目录查找文需要的件的程序? 下面的实现思路可不可以呢????
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • 如何用find实现查找并copy
  • linux下如何实现文件内容得查找替换
  • 请教在文本文件中查找一字符串并定位流的位置,如何实现较快?
  • 谁用过ejb 进行模糊查询???语句怎么写???能实现根据中间的字符串进行模糊查找么?
  • 在JSP中,我想查找本机指定目录下的一个文件,怎么来实现呢?
  • [求助]solaris下grep如何实现递归地查找某目录下的文件。
  • C# 递归查找树状目录实现方法
  • mysql实现根据多个字段查找和置顶功能
  • 在JAVA中如何实现在一个长字符串查找某个字符串??
  • Linux中如何查找函数的实现
  • linux下编写shell实现 find查找文件命令
  • python 查找文件夹下所有文件 实现代码
  • WinForm自定义函数FindControl实现按名称查找控件
  • WinForm实现按名称递归查找控件的方法
  • ejb中的实体bean要不要实现查找方法 “select * from name where name='name'"
  • php二分查找二种实现示例
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能? iis7站长之家
  • 我想把csdn的论坛改成一个软件平台,另外增加数据查询功能,聊天功能,不知怎样实现比较好?我想用jbuider 7+SQL server实现,不知如何?
  • 基于python实现的网络爬虫功能:自动抓取网页介绍
  • 我想做linux下的还原备份,实现与还原精灵虚拟还原等一样的功能,应该怎么做?另外现在有实现这种功能的成熟产品是哪一种?
  • struts+spring+hibernate+jquery实现分页功能的几个基本类介绍(异步加载)
  • 我想定义一个宏来实现文中功能,但是不知道我说的功能到底可不可以实现
  • Andriod UI中viewFlow实现仿淘宝的自动播放功能
  • 请问在linux下面,有没有硬盘整理的功能,或者有什么软件可以实现硬盘整理的功能?
  • 要实现无线功能部分,是单独写一个驱动,还是在原有驱动上扩充无线功能,哪个简单点?
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • socket实现多文件并发传输,求助多线程实现问题?
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • interface 到底有什么用???实现接口,怎么实现??
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 怎么用Jsp实现在页面实现树型结构?
  • php实现socket实现客户端和服务端数据通信源代码
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • flash AS3反射实现(describeType和getDefinitionByName)
  • 网站重定向用C语言实现iptables,ACL实现
  • boost unordered_map和std::list相结合的实现LRU算法
  • 求在freebsd+Squid下实现pc上网的透明代理的实现方法!给出具体配置方法的高分谢!
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • linux下如实现与window下的驱动器实现文件共享??
  • 使用java jdk中的LinkedHashMap实现简单的LRU算法
  • qt如何实现:操作键盘实现数据的滚动?
  • iphone cocos2d 精灵的动画效果(图片,纹理,帧)CCAnimation实现
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • PING是用TCP,还是用UDP来实现的?或是采用其它协议实现的?
  • html<pre>标签自动换行实现方法
  • ejb-ql只能 like '?%' 么?我想实现模糊查寻,想实现 like'%?%' 怎么办??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3