📄 mynotepad.java
字号:
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.undo.UndoManager;
import javax.swing.*;
import javax.swing.event.UndoableEditListener;
class FileWindows extends Frame implements ActionListener,WindowListener,TextListener
{
FileDialog filedialog_save,filedialog_load;
Dialog about,font;
MenuBar menubar;
Menu menu,menuEdit,menuHelp,menuFormat,menuColor;
MenuItem itemOpen,itemSave,itemExit,itemNew;
MenuItem itemFind,itemReplace,itemCut,itemPaste,itemCopy,itemDelete,itemSelectAll,itemTime;
MenuItem itemAbout;
MenuItem /*itemWrap,itemUndo*/itemFont,itemFgColor,itemBgColor;
TextArea text;
BufferedReader in;
FileReader file_reader;
BufferedWriter out;
FileWriter tofile;
boolean changed=false;
// UndoManager undo=new UndoManager();
// UndoableEditListener undoHandler=new undoHandler();
String temp;
FileWindows()
{
super("simple notepad!");
// Container container=getContentPane();
text=new TextArea();
// container.add(text);
text.addTextListener(this);
add(text,BorderLayout.CENTER);
setBounds(200,200,400,500);
setVisible(true);
menubar=new MenuBar();
menu=new Menu("file");
menuEdit=new Menu("edit");
menuFormat=new Menu("format");
menuHelp=new Menu("help");
menuColor=new Menu("color");
itemOpen=new MenuItem("open");
itemSave=new MenuItem("save");
itemExit=new MenuItem("exit");
itemNew=new MenuItem("new");
itemFind=new MenuItem("find");
itemReplace=new MenuItem("replace");
itemCut=new MenuItem("cut");
itemPaste=new MenuItem("paste");
itemCopy=new MenuItem("copy");
itemDelete=new MenuItem("delete");
itemSelectAll=new MenuItem("select all");
itemTime=new MenuItem("time/date");
// itemWrap=new MenuItem("word wrap");
// itemUndo=new MenuItem("undo");
itemFont=new MenuItem("font");
itemFgColor=new MenuItem("foreground color");
itemBgColor=new MenuItem("background color");
itemAbout=new MenuItem("about notepad");
menu.add(itemNew);
menu.addSeparator();
menu.add(itemOpen);
menu.add(itemSave);
menu.addSeparator();
menu.add(itemExit);
menuEdit.add(itemFind);
menuEdit.add(itemReplace);
menuEdit.addSeparator();
menuEdit.add(itemCut);
menuEdit.add(itemDelete);
menuEdit.add(itemPaste);
menuEdit.add(itemCopy);
menuEdit.addSeparator();
menuEdit.add(itemSelectAll);
menuEdit.addSeparator();
menuEdit.add(itemTime);
// menuFormat.add(itemWrap);
// menuFormat.add(itemUndo);
// menuFormat.addSeparator();
menuFormat.add(menuColor);
menuColor.add(itemFgColor);
menuColor.add(itemBgColor);
menuFormat.add(itemFont);
menuHelp.add(itemAbout);
itemOpen.addActionListener(this);
itemSave.addActionListener(this);
itemExit.addActionListener(this);
itemNew.addActionListener(this);
itemFind.addActionListener(this);
itemReplace.addActionListener(this);
itemCut.addActionListener(this);
itemDelete.addActionListener(this);
itemCopy.addActionListener(this);
itemPaste.addActionListener(this);
itemSelectAll.addActionListener(this);
// itemWrap.addActionListener(this);
// itemUndo.addActionListener(this);
itemTime.addActionListener(this);
itemAbout.addActionListener(this);
itemBgColor.addActionListener(this);
itemFgColor.addActionListener(this);
itemFont.addActionListener(this);
menubar.add(menu);
menubar.add(menuEdit);
menubar.add(menuFormat);
menubar.add(menuHelp);
setMenuBar(menubar);
filedialog_save=new FileDialog(this,"save files",FileDialog.SAVE);
filedialog_load=new FileDialog(this,"open files",FileDialog.LOAD);
filedialog_save.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
filedialog_save.setVisible(false);
}
});
filedialog_load.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
filedialog_load.setVisible(false);
}
});
addWindowListener(this);
}
public void textValueChanged(TextEvent e)
{
changed=true;
}
public void windowActivated(WindowEvent e)
{
}
public void windowDeactivated(WindowEvent e)
{
}
public void windowClosing(WindowEvent e)
{
if(changed==true)
{
int n=JOptionPane.showConfirmDialog(this,"Save or Not?", "confirm dialog",JOptionPane.YES_NO_CANCEL_OPTION);
if(n==JOptionPane.YES_OPTION)
{
filedialog_save.setVisible(true);
if(filedialog_save.getFile()!=null)
{
try
{
File file=new File(filedialog_save.getDirectory(),filedialog_save.getFile());
tofile=new FileWriter(file);
out=new BufferedWriter(tofile);
out.write(text.getText(),0,(text.getText()).length());
out.close();
tofile.close();
}
catch(IOException e2)
{
}
}
System.exit(0);
}
else if(n==JOptionPane.NO_OPTION)
{
System.exit(0);
}
else if(n==JOptionPane.CANCEL_OPTION)
{
}
}
else if(changed==false)
{
System.exit(0);
}
}
public void windowClosed(WindowEvent e)
{
}
public void windowIconified(WindowEvent e)
{
}
public void windowDeiconified(WindowEvent e)
{
}
public void windowOpened(WindowEvent e)
{
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==itemOpen)
{
filedialog_load.setVisible(true);
text.setText(null);
String s;
if(filedialog_load.getFile()!=null)
{
try
{
File file=new File(filedialog_load.getDirectory(),filedialog_load.getFile());
file_reader=new FileReader(file);
in=new BufferedReader(file_reader);
while((s=in.readLine())!=null){
text.append(s+'\n');
}
in.close();
file_reader.close();
}
catch(IOException e2)
{
JOptionPane.showMessageDialog(this, "can not open the files");
}
}
}
else if(e.getSource()==itemSave)
{
filedialog_save.setVisible(true);
if(filedialog_save.getFile()!=null)
{
try
{
File file=new File(filedialog_save.getDirectory(),filedialog_save.getFile());
tofile=new FileWriter(file);
out=new BufferedWriter(tofile);
out.write(text.getText(),0,(text.getText()).length());
out.close();
tofile.close();
}
catch(IOException e2)
{
JOptionPane.showMessageDialog(this, e2.getMessage());
}
}
}
else if(e.getSource()==itemExit)
{
if(changed==true)
{
int n=JOptionPane.showConfirmDialog(this,"Save or Not?", "confirm dialog",JOptionPane.YES_NO_CANCEL_OPTION);
if(n==JOptionPane.YES_OPTION)
{
filedialog_save.setVisible(true);
if(filedialog_save.getFile()!=null)
{
try
{
File file=new File(filedialog_save.getDirectory(),filedialog_save.getFile());
tofile=new FileWriter(file);
out=new BufferedWriter(tofile);
out.write(text.getText(),0,(text.getText()).length());
out.close();
tofile.close();
}
catch(IOException e2)
{
}
}
System.exit(0);
}
else if(n==JOptionPane.NO_OPTION)
{
System.exit(0);
}
else if(n==JOptionPane.CANCEL_OPTION)
{
}
}
else if(changed==false)
{
System.exit(0);
}
}
else if(e.getSource()==itemNew)
{
if(changed==true)
{
int n=JOptionPane.showConfirmDialog(this,"Save or Not?", "confirm dialog",JOptionPane.YES_NO_CANCEL_OPTION);
if(n==JOptionPane.YES_OPTION)
{
filedialog_save.setVisible(true);
if(filedialog_save.getFile()!=null)
{
try
{
File file=new File(filedialog_save.getDirectory(),filedialog_save.getFile());
tofile=new FileWriter(file);
out=new BufferedWriter(tofile);
out.write(text.getText(),0,(text.getText()).length());
out.close();
tofile.close();
}
catch(IOException e2)
{
JOptionPane.showMessageDialog(this, e2.getMessage());
}
}
this.setVisible(false);
FileWindows obj=new FileWindows();
obj.setVisible(true);
}
else if(n==JOptionPane.NO_OPTION)
{
FileWindows obj=new FileWindows();
obj.setVisible(true);
this.setVisible(false);
}
else if(n==JOptionPane.CANCEL_OPTION)
{
}
}
else if(changed==false)
{
FileWindows obj=new FileWindows();
obj.setVisible(true);
this.setVisible(false);
}
}
else if(e.getSource()==itemFind)
{
Find find=new Find(this,text);
find.showFind();
}
else if(e.getSource()==itemReplace)
{
Find find=new Find(this,text);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -