用java编写记事本程序,如何实现查找,替换

如题所述

第1个回答  推荐于2016-05-13
if(p.getActionCommand()=="查找 "||p.getSource()==findc) // 创建查找对话框;
{find=new Dialog(this,"查找");
JPanel p1=new JPanel();
JPanel p2=new JPanel();
findtxt=new JTextField(7);
p1.add(new JLabel("输入要查找字符:"));
p1.add(findtxt);
p2.add(findenter);
find.add("Center",p1);
find.add("South",p2);
find.setSize(200,100);
find.show();
}
if(p.getSource()==findenter) ///点击查找对话框的确定按钮后的事件处理
{
if(findtxt.getText().equals(""))
{find.dispose();}
else if(!findtxt.getText().equals(""))
{ find.dispose();
str=txt1.getText();
startp=str.indexOf(findtxt.getText());
endp=startp+findtxt.getText().length();
txt1.select(startp,endp);
m26.setEnabled(true);
newendp=endp;////////获取这次查找的终点
notfindmethod();
}
}
//////////////////////////////////////////////////////////
if(p.getActionCommand()=="查找下一个 ")
{
nexttemp=newendp; /////获取上次查找的终点做为未查找字符串的起点
String strall=txt1.getText();
txt1.select(nexttemp,strall.length()); /////选中所有未查找的字符串
strnext=txt1.getSelectedText();
newstartp=strnext.indexOf(findtxt.getText())+nexttemp;/////在未查找的字符串里搜索对应字符的在TXT1中的位置
newendp=newstartp+findtxt.getText().length();
txt1.select(newstartp,newendp); ////找到相应文本,并选择
notfindmethod();
}
if(p.getActionCommand()=="替换 ")
{m271.setEnabled(true);
replace=new Dialog(this,"替换"); // 创建替换对话框;
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
findtxt=new JTextField(7);
repltxt=new JTextField(7);
p1.add(new JLabel("输入原始字符:"));
p1.add(findtxt);
p2.add(new JLabel("输入替换字符:"));
p2.add(repltxt);
p3.add(replb);
replace.add("North",p1);
replace.add("Center",p2);
replace.add("South",p3);
replace.setSize(200,150);
replace.show();
}
if(p.getSource()==replb) ///点击替换对话框的确定按钮后的事件处理
{
replace.dispose();
str=txt1.getText();
startp=str.indexOf(findtxt.getText());
endp=startp+findtxt.getText().length();
txt1.replaceRange(repltxt.getText(),startp,endp);
newendp=endp; ///获取这次替换的终点
}
if(p.getActionCommand()=="替换下一个")
{nexttemp=newendp; /////获取上次查找的终点做为未查找字符串的起点
String strall=txt1.getText();
txt1.select(nexttemp,strall.length()); /////选中所有未查找的字符串
strnext=txt1.getSelectedText();
newstartp=strnext.indexOf(findtxt.getText())+nexttemp;/////在未查找的字符串里搜索对应字符的在TXT1中的位置
newendp=newstartp+findtxt.getText().length();
txt1.select(newstartp,newendp);
notfindmethod();
txt1.replaceRange(repltxt.getText(),newstartp,newendp);//替换字符
}
if(p.getActionCommand()=="全选 ")
{txt1.selectAll(); }
要看全部代码,我空间里有,自己看本回答被网友采纳