java记事本实现查找功能

elseif(src==itemSeek){JDialogsearch=newJDialog(this,"查找和替换");search.setSize(400,200);... else if(src == itemSeek)
{
JDialog search=new JDialog(this,"查找和替换");
search.setSize(400, 200);
search.setLocation(450,250);
JLabel label1=new JLabel("查找的内容");
JLabel label2=new JLabel("替换的内容");
final JTextField text_1=new JTextField(10);
final JTextField text_2=new JTextField(10);
JButton buttonFind=new JButton("查找下一个");
JButton buttonChange=new JButton("替换");
JPanel panel=new JPanel(new GridLayout(2,3));
panel.add(label1);
panel.add(text_1);
panel.add(buttonFind);
panel.add(label2);
panel.add(text_2);
panel.add(buttonChange);
search.add(panel);
search.setVisible(true);
String findText=text_1.getText();//查找的字符串
String myArea=textArea.getText();//当前文本框的内容
start=myArea.indexOf(findText,end);
end=start+findText.length();
if(start == -1)//没有找到
{
JOptionPane.showMessageDialog(null,"没找到"+findText,"记事本",JOptionPane.WARNING_MESSAGE);
textArea.select(start, end);
}
else
{
textArea.select(start,end);
}
String changeText=text_2.getText();//替换的字符串
textArea.select(start, end);
textArea.replaceSelection(changeText);
textArea.select(start, end);
}

}

为啥按了查找没有反应,我是java菜鸟求详细解答
展开
 我来答
百度网友12ee0fd
推荐于2016-11-15 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1971万
展开全部

这个可以使用正则。

import javax.swing.event.*; 
import javax.swing.text.*; 
import java.util.regex.*;

public class IncrementalSearch 
implements DocumentListener, ActionListener {

protected JTextComponent content;
public IncrementalSearch(JTextComponent comp) {
this.content = comp;
}

/* DocumentListener implementation */
public void insertUpdate(DocumentEvent evt) {
runNewSearch(evt.getDocument());
}
public void removeUpdate(DocumentEvent evt) {
runNewSearch(evt.getDocument());
}
public void changedUpdate(DocumentEvent evt) {
runNewSearch(evt.getDocument());
}

protected Matcher matcher;

private void runNewSearch(Document query_doc) {
try {
String query = query_doc.getText(0,query_doc.getLength());

Pattern pattern = Pattern.compile(query);
Document content_doc = content.getDocument();
String body = content_doc.getText(0,content_doc.getLength());

matcher = pattern.matcher(body);
continueSearch();

} catch (Exception ex) {
p("exception: " + ex);
ex.printStackTrace();


}

private void continueSearch() {
if(matcher != null) {
if(matcher.find()) {            
content.getCaret().setDot(matcher.start());         
content.getCaret().moveDot(matcher.end());
content.getCaret().setSelectionVisible(true);
}
}
}

/* ActionListener implementation */ 
public void actionPerformed(ActionEvent evt) {    
continueSearch(); 


public static void main(String[] args) {
JTextArea text_area = new JTextArea(10,20);
JScrollPane scroll = new JScrollPane(text_area);
IncrementalSearch isearch = new IncrementalSearch(text_area);
   
JTextField search_field = new JTextField();    
search_field.getDocument().addDocumentListener(isearch); 
search_field.addActionListener(isearch);

JFrame frame = new JFrame("Incremental Search Hack");
frame.getContentPane().add("North",search_field);
frame.getContentPane().add("Center",scroll);
frame.pack();
frame.show();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
焉高洁b9
2013-10-29 · 超过12用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:26.8万
展开全部
你有没有写监听器啊,继承ActionListener,按钮必须添加监听器后才会起作用。
重写actionPerformed(ActionEvent e) 方法,把你按钮执行的动作放在这个方法里才行。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1234rsto
2013-10-31
知道答主
回答量:49
采纳率:0%
帮助的人:23.3万
展开全部
你没有添加click事件监听吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式