当前位置:编程学习 > JAVA >>

求大神帮助实现记事本删除,查找和替换功能,急用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

import java.awt.FileDialog;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;


public class Mytext  extends JFrame implements ActionListener,WindowListener{
    private JTextArea jta =new JTextArea();

    private JMenuItem  jm11=new JMenuItem("新建                 N",KeyEvent.VK_N);
    private JMenuItem  jm12=new JMenuItem("打开                 O",KeyEvent.VK_O);
    private JMenuItem  jm13=new JMenuItem("保存                 S",KeyEvent.VK_S);
    private JMenuItem  jm14 =new JMenuItem("退出                Q",KeyEvent.VK_Q);
    
    
    private JMenuItem jm21=new JMenuItem ("复制                   C",KeyEvent.VK_C);
    private JMenuItem jm22=new JMenuItem("粘贴                    P",KeyEvent.VK_P);
    private JMenuItem jm23=new JMenuItem("全选                    A ",KeyEvent.VK_A);
    private JMenuItem jm24=new JMenuItem("剪切                    T",KeyEvent.VK_T);
    
    
    private JMenuItem jm41=new JMenuItem("字体                     B"  ,KeyEvent.VK_B);
    
    private JMenuItem jm31=new JMenuItem("帮助");
    
    private FileDialog  openfd=new FileDialog(this,"打开文件",FileDialog.LOAD);
    private FileDialog  savefd =new FileDialog(this,"保存文件",FileDialog.SAVE);
    private JOptionPane jo=new JOptionPane();
    
    Toolkit toolkit = Toolkit.getDefaultToolkit();               //工具包
    Clipboard clipboard = toolkit.getSystemClipboard();          //系统剪贴板
    
    public Mytext() {
     this.setTitle("记事本");
     this.setSize(600,500);
     this.addWindowListener(this);
     JMenuBar jmb=new  JMenuBar();
     JMenu jm1=new JMenu("文件(F)");
     JMenu jm2=new JMenu("编辑(E)");
     JMenu jm4=new JMenu("格式(W)");
     JMenu jm3=new JMenu("帮助(H)");
    
    
     jm1.setMnemonic(KeyEvent.VK_F);
     jm2.setMnemonic(KeyEvent.VK_E);
     jm4.setMnemonic(KeyEvent.VK_W);
     jm3.setMnemonic(KeyEvent.VK_H);
    
    
     this.setJMenuBar(jmb);
     jmb.add(jm1);
     jmb.add(jm2);
     jmb.add(jm4);
     jmb.add(jm3);
    
     jm1.add(jm11);
     jm1.add(jm12);
     jm1.add(jm13);
     jm1.add(jm14);
    
     jm2.add(jm21);
     jm2.add(jm22);
     jm2.add(jm23);
     jm2 .add(jm24);
    
     jm4.add(jm41);
     jm3.add(jm31);
    
     this.setLayout(new GridLayout(1,1));   //布局
     this.add(jta);
     this.add(new JScrollPane(jta));   //设置滚动条
     //监听器
    
         //新建
     jm11.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {
     jta.setText("");  //清空
     }
     });
    
     //打开
     jm12.addActionListener(this);
    
     //保存
     jm13.addActionListener(this);
    
     //退出
     jm14.addActionListener( new ActionListener() {
    


   public void actionPerformed(ActionEvent e) {
System.exit(0);
}


     });
     //复制
     jm21.addActionListener(new ActionListener() {


public void actionPerformed(ActionEvent e) {
String text=jta.getSelectedText();
StringSelection selection =new StringSelection(text);
clipboard.setContents(selection,null);
}
    
     });
    
     //粘贴 
     jm22.addActionListener(new ActionListener() {


public void actionPerformed(ActionEvent e) {
Transferable tranferable=clipboard.getContents(this);
String text="";
try {
text=(String)tranferable.getTransferData(DataFlavor.stringFlavor);
} catch(UnsupportedFlavorException e1) {
e1.printStackTrace();
} catch(IOException e1) {
e1.printStackTrace();
}
jta.replaceRange(text,jta.getSelectionStart(),jta.getSelectionEnd());
}
    
     });
    
     //全选
     jm23.addActionListener(new ActionListener() {


public void actionPerformed(ActionEvent e) {

jta.selectAll();

}
    
     });
     //剪切
     jm24.addActionListener(new ActionListener() {


public void actionPerformed(ActionEvent e) {
String text=jta.getSelectedText();
StringSelection selection =new StringSelection(text);
clipboard.getContents(selection);
jta.replaceRange("",jta.getSelectionStart(),jta.getSelectionEnd());
}
    
     });
     //帮助
     jm31.addActionListener(new ActionListener() {


public void actionPerformed(ActionEvent e) {


}
    
     });
     this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    }
    
    public static void main(String []args) {
     new Mytext().setVisible(true);
    }
    
private JMenuBar Menu(String string) {

return null;
}

public void actionPerformed(ActionEvent e) {
//打开
if(e.getSource()==jm12) {
openfd.setVisible(true);
String str=openfd.getDirectory()+openfd.getFile();
try {
File file=new File(str);

FileReader fr=new FileReader(file);
int size=(int)file.length();
char []data=new char[size];
String alldata=" ";
int length=0;
while((length=fr.read(data))>0) {
alldata+=new String(data,0,length);
}
fr.close();
jta.setText(alldata);
this.setTitle(str);//重设标题
}catch(Exception e1) {
System.out.println("指定文件发生错误!!!");
}
}

//保存
else if(e.getSource()==jm13) {
savefd.setVisible(true);
String str=savefd.getDirectory()+savefd.getFile();
try {
File file=new File(str);
FileWriter fw=new FileWriter(file);
fw.write(jta.getText());
fw.close();
this.setTitle(str);
}catch(Exception e1) {
System.out.println("指定文件发生错误!!!");

}
}
}


public void windowActivated(WindowEvent e) {

}


public void windowClosed(WindowEvent e) {


}


public void windowClosing(WindowEvent e) {
 if(this.getTitle()!="记事本") {
 String name=this.getTitle();
 try {
 File file=new File(name);
 FileReader fr=new FileReader(file);
 int size=(int)file.length();
 char []data=new char[size];
 String alldata=" ";
 int length=0;
 while((length=fr.read(data))>0) {
 alldata+=new String(data,0,length);
 }
 if(alldata!=jta.getText()) {
 int choose=jo.showConfirmDialog(null,"是否保存文件"," ",jo.YES_NO_CANCEL_OPTION);
 if(choose==0) {
 FileWriter fw=new FileWriter(file);
 fw.write(jta.getText());
 fw.close();
 System.exit(0);
 }
 else if(choose==1) {
 System.exit(0);
 }
 else if(choose==2){
 System.out.println("取消");
 }
 }
 fr.close();
 }catch(Exception e1) {
 System.out.println("错误");
 System.exit(0);
 }
 }
 else if(this.getTitle()=="记事本"&&jta.getText()!=null) {
 System.out.println(12+jta.getText()+12);
 int choose=jo.showConfirmDialog(null,"是否保存文件"," ",jo.YES_NO_CANCEL_OPTION);
 if(choose==0) {
 savefd.setVisible(true);
 String str=savefd.getDirectory()+savefd.getFile();
 try {
 File file=new File(str);
 FileWriter fw=new FileWriter(file);
 fw.write(jta.getText());
 fw.close();
 this.setTitle(str);
 }catch(Exception e1) {
 System.out.println("错误!!!");
 }
 System.exit(0);
 }
 else if(choose==1) {
 System.exit(0);
 }
 else if(choose==2) {
 System.out.println("取消");
 }
   }
}


public void windowDeactivated(WindowEvent e) {


}


public void windowDeiconified(WindowEvent e) {


}


public void windowIconified(WindowEvent e) {


}


public void windowOpened(WindowEvent e) {


}

}
--------------------编程问答--------------------
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,