求大神帮助实现记事本删除,查找和替换功能,急用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
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相关