java程序,写一个记事本,有查找和替换的功能

作者&投稿:唱纯 (若有异议请与网页底部的电邮联系)
java记事本的查找功替换能怎么实现,请说的具体点!~

//我曾今写过的,自己看,很容易
private void search() {
final JDialog jd=new JDialog();
final JTextField sjtf1=new JTextField(10);
final JTextField sjtf2=new JTextField(10);
JPanel sjp1=new JPanel();
sjp1.add(sjtf1);sjp1.add(sjtf2);
jd.add(sjp1);
JPanel sjp2=new JPanel();
JButton sjb1=new JButton("查找");
JButton sjb2=new JButton("替换");
sjp2.add(sjb1);sjp2.add(sjb2);
jd.add(sjp2,BorderLayout.SOUTH);
jd.setBounds(400, 250, 300, 100);
jd.setVisible(true);
jd.setResizable(false);
sjb1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
String s=sjtf1.getText();
int x = textEdit.getText().indexOf(s, textEdit.getSelectionEnd());
if (x == -1) {
JOptionPane.showConfirmDialog(null, "没找到 " + s);
} else {
textEdit.setSelectionStart(x);
textEdit.setSelectionEnd(x + s.length());
}
//jd.dispose();
}
});
sjb2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
String s=sjtf1.getText();
String s1=sjtf2.getText();
int x = textEdit.getText().indexOf(s, textEdit.getSelectionEnd());
if (x == -1) {
JOptionPane.showConfirmDialog(null, "没找到 " + s);
} else {
textEdit.setSelectionStart(x);
textEdit.setSelectionEnd(x + s.length());
textEdit.replaceSelection(s1);
textEdit.setSelectionStart(textEdit.getSelectionEnd()-s1.length());
textEdit.setSelectionEnd(textEdit.getSelectionEnd());
}
//jd.dispose();
}
});
}

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(); }
要看全部代码,我空间里有,自己看

import java.io.*;
import java.awt.event.*;
import javax.swing.*;
public class MainClass extends JFrame implements ActionListener{
int width = 500,height = 400;
JPanel panel;
JMenuBar bar;
JMenu fileMenu,editMenu,helpMenu;
JMenuItem 打开O,新建N,保存S,另存A,剪切T,复制C,粘贴P,关于A;
JTextArea textArea = null;
File tempFile = null;
public MainClass(){ //构造方法
setTitle("TextEdit");
setSize(width,height);
panel = (JPanel)getContentPane();
bar = new JMenuBar();
fileMenu = new JMenu("文件F");
fileMenu.setMnemonic('F');
editMenu = new JMenu("编辑E");
editMenu.setMnemonic('E');
helpMenu = new JMenu("帮助H");
helpMenu.setMnemonic('H');
打开O = new JMenuItem("打开O");
打开O.setMnemonic('O');
新建N = new JMenuItem("新建N");
新建N.setMnemonic('N');
保存S = new JMenuItem("保存S");
保存S.setMnemonic('S');
另存A = new JMenuItem("另存A");
另存A.setMnemonic('A');
剪切T = new JMenuItem("剪切C");
剪切T.setMnemonic('t');
复制C = new JMenuItem("复制C");
复制C.setMnemonic('C');
粘贴P = new JMenuItem("粘贴P");
粘贴P.setMnemonic('P');
关于A = new JMenuItem("关于A");
关于A.setMnemonic('A');
fileMenu.add(打开O);
fileMenu.add(新建N);
fileMenu.add(保存S);
fileMenu.add(另存A);
bar.add(fileMenu);
editMenu.add(剪切T);
editMenu.add(复制C);
editMenu.add(粘贴P);
bar.add(editMenu);
helpMenu.add(关于A);
bar.add(helpMenu);
textArea = new JTextArea();
panel.add("North",bar);
panel.add("Center", textArea);
打开O.addActionListener(this);
新建N.addActionListener(this);
保存S.addActionListener(this);
另存A.addActionListener(this);
剪切T.addActionListener(this);
复制C.addActionListener(this);
粘贴P.addActionListener(this);
关于A.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent event){ //处理事件
if(event.getSource() == 打开O){ //处理打开
JFileChooser jfc = new JFileChooser();
jfc.showOpenDialog(panel);
tempFile = jfc.getSelectedFile();
FileReader fis;
try {
fis = new FileReader(tempFile);
textArea.read(fis,null);
textArea.setEditable(true);
}catch(Exception ex){ex.printStackTrace();}
}
if(event.getSource() == 新建N){ //处理新建
textArea.setEditable(true);
textArea.setText(null);
}
if(event.getSource() == 保存S){ //处理保存
if(tempFile == null){
JFileChooser jfc = new JFileChooser();
jfc.showSaveDialog(panel);
tempFile = jfc.getSelectedFile();
try{
FileWriter fos = new FileWriter(tempFile);
textArea.write(fos);
}catch(Exception ex){ex.printStackTrace();}
}
else{
try{
FileWriter fos = new FileWriter(tempFile);
textArea.write(fos);
}catch(Exception ex){ex.printStackTrace();}
}
}
if(event.getSource() == 另存A){ //处理另存
JFileChooser jfc = new JFileChooser();
jfc.showSaveDialog(panel);
tempFile = jfc.getSelectedFile();
try{
FileWriter fos = new FileWriter(tempFile);
textArea.write(fos);
}catch(Exception ex){ex.printStackTrace();}
}
if(event.getSource() == 剪切T){ //处理剪切
textArea.cut();
}
if(event.getSource() == 复制C){ //处理复制
textArea.copy();
}
if(event.getSource() == 粘贴P){ //处理粘贴
textArea.paste();
}
if(event.getSource() == 关于A){ //处理关于
textArea.setText("Manifest-Version: 1.0\n" +
"Created-By: Libra_JL\n" +
"QQ: 254791521\n");
textArea.setEditable(false);
panel.validate();
validate();
}
}
public static void main(String []args){ //主函数
new MainClass();
}
}

用正则表达式呀!很方便的!


java编写一个程序,我连续输入 1 2 3 4 5 6 7 这7个数字,请编写一个程...
import java.util.*;public class Test { public static void main(String[] args) { List<Integer> data = new ArrayList<Integer>();\/\/保存用户输入的数 List<Integer> result = new ArrayList<Integer>();\/\/保存最后得到的结果 int num;\/\/输入的数的个数 Scanner in = new Scanner(System....

试编写一个java应用程序,要求输入一个圆的半径,输出其面积
代码为:Scanner scanner=new Scanner(System.in);System.out.println("请输入圆的半径:");int r=Integer.parseInt(scanner.next()); \/\/获取半径System.out.println("圆的面积为:"+Math.PI*r*r);

Java编程题编写一个Java Application程序包含Person类、Student(学?
Student stu1 = new Student();stu1.setName("张三");stu1.setSex("男");stu1.setNum("20211225001");stu1.setSchool("北京大学");Student stu2 = new Student("20211225002", "北京大学");stu2.setName("李四");stu2.setSex("男");Student stu3 = new Student("王五", "女", "...

java编写一个程序段,输入一个3位整数,将它反向输出.如输入123,输出321...
import java.util.*;public class KZTinputArray { public static void main(String[] args) { Scanner in = new Scanner(System.in);System.out.println("Pls input a string:");String str = in.nextLine();\/\/ int a[] = new int[str.length()];\/ for (int i = 0; i < str....

用java编写,用一个程序谢谢
public class Test { public static void main(String[] args) { Student student; float chinese; float math; float english; do { chinese = getByInputBox("输入语文成绩:"); } while (chinese < 1 || chinese > 100); do { math = getByInputBox("输...

一个简单的JAVA程序编写
\/\/输出上面的三行 for(int i = 2; i >= 0; i--){ for(int j = 0; j < i ; j++){ System.out.print(" ");} for(int n = 0; n < 5 - 2 * i; n++){ System.out.print(sName[i]);} System.out.println("");} \/\/输出下面的两行 for(int i = 1; i < 3; ...

编写一个java程序,完成以下功能: 1) 声名为s的string对象,并使它的内容...
public class TestString { public static void main(String[] args) { String s=" Call Me Ishmael ";System.out.println("原字符串:"+s);System.out.println("字符串长度:"+s.length());System.out.println("字符串第一个字符:"+s.charAt(0));System.out.println("字符串最后一个字符...

请JAVA高手帮写一个程序。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); \/\/关闭窗口时退出程序 } private JMenuBar createJMenuBar(Action[] actions) { \/\/创建菜单栏 JMenuBar menubar = new JMenuBar(); \/\/实例化菜单栏 JMenu menuFile = new JMenu("文件"); \/\/实例化菜单 JMenu menuEdit = new JMenu("编辑");...

用java写一个程序
public static void main(final String[] args) { final Scanner scan = new Scanner(System.in);final int num =scan.nextInt();String str =String.valueOf(num);final String[] aa= str.split("");final int a1 = Integer.parseInt(aa[0]);final int a2 = Integer.parseInt(aa[1])...

编写一个Java应用程序,该程序包括3个类:Monkey类、People类和主类 E...
public class Monkey{ public Monkey (String s){ System.out.println(s);} public void speak(){ System.out.println("咿咿呀呀...");} } public People extends Monkey { public People() {} public void speak(){ System.out.println("小样的,不错嘛!会说话了!");} public void thi...

平江区13372951366: java怎么实现记事本中的查找功能?要不区分大小写, -
犁黎了哥: 最简单的办法,把带查找的文本和需要查找的文本都转化为大写(小写). int start = jTextArea.getText().toUpperCase().indexOf(strfindtxt.toUpperCase(), 0); .... 这样并不会真的把文本转化的.放心用.手写未测试.如有错可M我.QQ353314220

平江区13372951366: 用Java语言编写一个记事本程序 -
犁黎了哥: import java.awt.*; import java.awt.event.*; import java.io.FileReader; import java.io.FileWriter; import javax.swing.JFileChooser; import java.awt.*; import java.awt.event.*; import java.io.FileReader; import java.io.FileWriter; import javax.swing....

平江区13372951366: 记事本里的替换,查找,撤销怎么用java代码实现?? -
犁黎了哥: 替换可以用java的字符串类的方法ReplaceAll实现,查找可以用字符串的Indexof方法实现,撤销你可以去看看java设计模式命令模式,这种模式可以实现操作撤销.

平江区13372951366: Java实现记事本的怎样实现查找功能,这是我的代码但是怎么是这样的 -
犁黎了哥: 返回此文本组件表示的文本.默认情况下,此文本是一个空字符串.空字符串就是“”,说明里面什么都没有.所以wenben获取不正确

平江区13372951366: java怎样实现记事本的查找功能 -
犁黎了哥: 使用regex.Swing Hacks书里有这个例子

平江区13372951366: JAVA,像记事本一样的“自动换行”“查找”功能是如何实现的啊 -
犁黎了哥: //设置JTextArea自动换行 jTextArea.setLineWrap(true);//同时把横向的滚动条隐去 jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 反之也是如此 查找的话稍微复杂点 不是单纯一个indexOf就可以搞定的 很久以前我写过一个java的记事本 如果楼主需要的话可以留下邮箱 我会发给你的

平江区13372951366: 用JAVA编个简单的记事本程序 -
犁黎了哥: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; class Editer1 implements ActionListener { JFrame f; JTextArea input; JMenuItem menuItemopen,menuItemsave,menuItemquit; String filename=""; String directory="...

平江区13372951366: 编写一个java程序,实现一个记事本 -
犁黎了哥: 如果是创建一个txt文件的话,用这个方法就可以,输入要创建那个txt文件路径,包括要创建的txt文件名称,比如:D:/javaTest/javaTest.txt,然后运行即可public static String createFile(String pathStr) throws IOException{File path=new File(...

平江区13372951366: java编写简单的记事本程序!!求助!作业!请附带稍微详细一点的文档说明!说明都有什么,怎么运行!! -
犁黎了哥: 给你个做好了的Java的源程序的记事本,自己看看就行了的,不怎么难的··· 文件名 MyNotepad .java import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class MyNotepad implements ActionListener{ private ...

平江区13372951366: java编写记事本不会写查找功能.没有思路.还有替换. -
犁黎了哥: 1. 记事本编程,目的就是练习.2. 真正开发的,就使用eclipse等开发工具了.3. 所以还是自己敲代码的好.4. 查找是CTRL+F

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网