📄 notepad.java
字号:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.SimpleDateFormat;
import javax.swing.*;
import javax.swing.event.*;
class FirstWindow extends Frame implements ActionListener,DocumentListener,Runnable
{
MenuBar menubar;
Menu menuFile,menuEdit,menuFormat,menuHelp;
MenuItem itemNew,itemLoad,itemSave,itemSaveAs,itemExit,itemCut,itemCopy,itemPaste,itemRemove,itemSelectAll,itemTime,itemLineWrap,itemFont,itemHelp,itemAbout;
FileDialog filedialog_Save,filedialog_Load;
JTextArea text;
JScrollPane scroll;
Date nowTime;
SimpleDateFormat time;
BufferedReader in;
FileReader file_reader;
BufferedWriter out;
FileWriter tofile;
int text_event = 0,clickTimes =1;
FirstWindow(String s)
{
setTitle(s);
Toolkit tool=getToolkit();
Dimension dim =tool.getScreenSize();
setBounds(40,40,dim.width/2,dim.height/2);
text= new JTextArea();
scroll = new JScrollPane(text);
menubar =new MenuBar();
menuFile =new Menu("文件");
menuEdit =new Menu("编辑");
menuFormat =new Menu("格式");
menuHelp =new Menu("帮助");
itemNew =new MenuItem("新建");
itemLoad =new MenuItem("打开");
itemSave =new MenuItem("保存");
itemSaveAs =new MenuItem("另存为");
itemExit=new MenuItem("退出");
itemCut=new MenuItem("剪切");
itemCopy=new MenuItem("复制");
itemPaste=new MenuItem("粘贴");
itemRemove=new MenuItem("删除");
itemSelectAll=new MenuItem("全选");
itemTime=new MenuItem("时间");
itemLineWrap=new MenuItem("自动换行");
itemFont=new MenuItem("字体");
itemHelp=new MenuItem("帮助主题");
itemAbout=new MenuItem("关于");
filedialog_Save =new FileDialog(this,"保存文件",FileDialog.SAVE);
filedialog_Load =new FileDialog(this,"打开文件",FileDialog.LOAD);
menubar.add(menuFile);
menubar.add(menuEdit);
menubar.add(menuFormat);
menubar.add(menuHelp);
menuFile.add(itemNew);
menuFile.add(itemLoad);
menuFile.add(itemSave);
menuFile.add(itemSaveAs);
menuFile.addSeparator();
menuFile.add(itemExit);
menuEdit.add(itemCut);
menuEdit.add(itemCopy);
menuEdit.add(itemPaste);
menuEdit.add(itemRemove);
menuEdit.addSeparator();
menuEdit.add(itemSelectAll);
menuEdit.add(itemTime);
menuFormat.add(itemLineWrap);
menuFormat.add(itemFont);
menuHelp.add(itemHelp);
menuHelp.add(itemAbout);
add(scroll);
itemNew.addActionListener(this);
itemLoad.addActionListener(this);
itemSave.addActionListener(this);
itemSaveAs.addActionListener(this);
itemExit.addActionListener(this);
itemCut.addActionListener(this);
itemCopy.addActionListener(this);
itemPaste.addActionListener(this);
itemRemove.addActionListener(this);
itemSelectAll.addActionListener(this);
itemTime.addActionListener(this);
itemFont.addActionListener(this);
itemLineWrap.addActionListener(this);
itemAbout.addActionListener(this);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{ System.exit(0); }
});
(text.getDocument()).addDocumentListener(this);
filedialog_Save.setVisible(false);
filedialog_Load.setVisible(false);
setMenuBar(menubar);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==itemNew)
{
if( text_event == 1)
{
String message = "文本内容被修改,是否保存?";
int ok = JOptionPane.showConfirmDialog(null,message,"确认对话框",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE);
if(ok==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);
PrintStream ps = new PrintStream(new FileOutputStream("p.txt"));
out.write(text.getText(),0,(text.getText()).length());
ps.close();
out.close();
tofile.close();
}
catch(IOException e2){}
}
text_event = 0; text.setText(null); setTitle("新建文本文档");
}
else if(ok==JOptionPane.NO_OPTION)
{ text_event = 0; text.setText(null); setTitle("新建文本文档"); }
else if(ok==JOptionPane.CANCEL_OPTION) {text_event = 0; }
}
else { text_event = 0; text.setText(null); setTitle("新建文本文档"); }
}
else if(e.getSource()==itemLoad)
{
if( text_event == 1)
{
String message = "文本内容被修改,是否保存?";
int ok = JOptionPane.showConfirmDialog(null,message,"确认对话框",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE);
if(ok==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){}
}
text_event = 0;
}
else if(ok==JOptionPane.NO_OPTION)
{
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);
setTitle(filedialog_Load.getFile());
in =new BufferedReader(file_reader);
while((s=in.readLine())!=null)
text.append(s+'\n');
in.close();
file_reader.close();
}
catch(IOException e2){}
}
text_event = 0;
}
else if(ok==JOptionPane.CANCEL_OPTION) {}
}
else
{
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);
setTitle(filedialog_Load.getFile());
in =new BufferedReader(file_reader);
while((s=in.readLine())!=null)
text.append(s+'\n');
in.close();
file_reader.close();
}
catch(IOException e2){}
}
}
}
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){}
}
}
else if(e.getSource()==itemSaveAs)
{
filedialog_Save.setVisible(true);
if(filedialog_Save.getFile()!=null)
{
try{
File file =new File(filedialog_Save.getDirectory(),filedialog_Save.getFile());
setTitle(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){}
}
}
else if(e.getSource()==itemExit)
{
System.exit(0);
}
else if(e.getSource()==itemFont)
{
FontDialog dialog =new FontDialog(this,"字体",true);
dialog.setVisible(true);
}
else if(e.getSource()==itemCut)
{
text.cut();
}
else if(e.getSource()==itemCopy)
{
text.copy();
}
else if(e.getSource()==itemPaste)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -