解析findnext.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int c=0; int a = 0, b = 0; int FindStartPos = textArea.getCaretPosition(); String strA,strB; // 选中区分大小写,大小写转换 if (matchcase.isSelected()) { strA = textArea.getText(); strB = ftext.getText(); } else { strA = textArea.getText().toLowerCase(); strB = ftext.getText().toLowerCase(); } //向上查找,否则向下查找 if (up.isSelected()) { a = strA.lastIndexOf(strB, FindStartPos - ftext.getText().length() - 1); } else if (down.isSelected()) { a = strA.indexOf(strB, FindStartPos - ftext.getText().length() + 1); } //查找到边界 if (a > -1) { if (up.isSelected()) { textArea.setCaretPosition(a); b = ftext.getText().length(); textArea.select(a, a + b); } else if (down.isSelected()) { textArea.setCaretPosition(a); b = ftext.getText().length(); textArea.select(a, a + b); } } else { JOptionPane.showMessageDialog(null, "找不到查找的内容", "查找", JOptionPane.INFORMATION_MESSAGE); } //显示关键字的总数量 Pattern p=Pattern.compile(ftext.getText()); Matcher m=p.matcher(textArea.getText()); while(m.find()) { c++; } count.setText("找到"+c+"个"); } }); //取消的监听器 no.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jdlg.setVisible(false); }
时间: 2024-02-14 14:35:28 浏览: 130
C++利用 _findfirst与_findnext查找文件的方法
这段代码是一个查找功能的实现,当用户点击"查找下一个"按钮后,会执行addActionListener中的代码。首先,获取用户在文本框中输入的关键字,然后判断是否选择了大小写选项,对应地将文本框中的内容转为小写或保持原样。接着判断用户选择的查找方向,向上或向下。然后在文本框中查找关键字,如果找到了,则将光标定位到该位置并将关键字选中,如果没有找到,则弹出提示框。最后,统计关键字在文本框中出现的总数量,并更新界面上的计数器。另外,代码中还包含一个"取消"的监听器,当用户点击"取消"按钮时,隐藏对话框。
阅读全文