📄 note.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.datatransfer.*;
import java.io.*;
import javax.swing.undo.*;
import javax.swing.border.*;
import java.text.*;
//import java.applet.*;
import java.lang.*;
import javax.swing.JTextPane.*;
public class Note /*implements ActionListener , MouseListener , MouseMotionListener , WindowListener , ItemListener , KeyListener, TextListener */
{
//成员变量
private Frame mainFrame;//主框架
private MenuBar mb ; //菜单条
private Menu mFile , mEdit , mFormat , mHelp,mLook ; //菜单:文件,编辑,格式,帮助
private MenuItem miNew , miOpen , miSave , miSaveAs , miExit ;//文件菜单项:新建,打开,保存,另存为,退出
private MenuItem miCut , miCopy , miPaste , miDelete,miSearch,miSelectAll;//编辑菜单项:剪切,复制,粘贴,删除
private MenuItem miFont,miColor,miSize;//格式菜单项:字体
private MenuItem miState; //查看菜单项: 状态栏
private MenuItem miAboutNote;//帮助菜单项:关于记事本
private TextArea ta;//文本区
private String tempString;//临时字符串,用于存储需要复制粘贴的字符串
private boolean textValueChanged = false;
private int id_font ;//字体
String fileName = "";//上次保存后的文件名和地址
//构造函数
public Note(){
//框架
mainFrame = new Frame (" 记事本----高锦龙 ");
mb = new MenuBar ();
ta = new TextArea (30 ,60); //记事本内容
ta.setFont( new Font ( "Times New Rome" , Font.PLAIN, 15)); //记事本原始字体大小
ta.setBackground(Color.white );
//菜单条
mFile = new Menu ( "文件(F) ");
mEdit = new Menu ( "编辑(E) ");
mFormat = new Menu ("格式(O)");
mLook = new Menu ("查看 (V)");
mHelp = new Menu ("帮助(H)");
//"文件"
miNew = new MenuItem ("新文件 ");
miOpen = new MenuItem ("打开 ");
miSave = new MenuItem ("保存");
miSaveAs = new MenuItem ("另存为.....");
miExit = new MenuItem ("退出");
//"编辑"
miCut = new MenuItem ("剪切");
miCopy = new MenuItem ("复制");
miPaste = new MenuItem ("粘贴");
miDelete = new MenuItem ("删除");
miSearch = new MenuItem ("查找");
miSelectAll = new MenuItem ("全选");
//"格式"
miFont = new MenuItem ("字形");
miColor = new MenuItem ("颜色");
miSize = new MenuItem ("字体大小");
// "查看"
miState= new MenuItem ("状态栏 ");
//"帮助"
miAboutNote = new MenuItem ("关于帮助文档 ...");
//添加文件菜单项
mFile.add(miNew);
mFile.add(miOpen);
mFile.add(miSave);
mFile.add(miSaveAs);
mFile.add(miExit);
//添加编辑菜单项
mEdit.add(miCut);
mEdit.add(miCopy);
mEdit.add(miPaste);
mEdit.add(miDelete);
mEdit.add(miSearch);
mEdit.add(miSelectAll);
//添加格式菜单项
mFormat.add(miFont);
mFormat.add(miColor);
mFormat.add(miSize);
//添加查看菜单项
mLook.add(miState);
//添加帮助菜单项
mHelp.add(miAboutNote);
//菜单条添加菜单
mb.add(mFile);
mb.add(mEdit);
mb.add(mFormat);
mb.add(mLook);
mb.add(mHelp);
//框架添加菜单条
mainFrame.setMenuBar( mb );
//初始字符串赋为空
tempString = "";
//添加文本区
mainFrame.add(ta, BorderLayout.CENTER);
mainFrame.setSize(650 , 330);
mainFrame.setLocation( 50,50);// 起始位置
mainFrame.setResizable(true);//不可更改大小
mainFrame.setVisible(true);
//mainFrame.pack();
//////////////////////////////////////////////////////////////////////////////////
////////////////////////////////增加监视器////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//主框架
mainFrame.addWindowListener(new WindowAdapter (){ //关闭窗口
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//文本区
ta.addKeyListener( new KeyAdapter(){
public void KeyTyped(KeyEvent e){
textValueChanged = true ; //键盘按键按下即导致文本修改
}
});
////////////////"文件"菜单://////////////////////
//新建
miNew.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.replaceRange("", 0 , ta.getText().length()) ;//清空文本区的内容
fileName = "";//文件名清空
}
});
//打开
miOpen.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e) {
FileDialog d=new FileDialog(mainFrame , "open file" , FileDialog.LOAD );//打开文件对话框
d.addWindowListener( new WindowAdapter(){ //关闭文件对话框窗口
public void windowClosing(WindowEvent ee){
System.exit(0);
}
});
d.setVisible(true);
File f = new File( d.getDirectory()+d.getFile() ); //建立新文件
fileName = d.getDirectory()+d.getFile();//得到文件名
char ch[] = new char [(int)f.length()];///用此文件的长度建立一个字符数组
try//异常处理
{
//读出数据,并存入字符数组ch中
BufferedReader bw = new BufferedReader( new FileReader(f) );
bw.read(ch);
bw.close();
}
catch( FileNotFoundException fe ){
System.out.println("file not found");
System.exit(0);
}
catch( IOException ie){
System.out.println("IO error");
System.exit(0);
}
String s =new String (ch);
ta.setText(s);//设置文本区为所打开文件的内容
}
});
//保存
miSave.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e) {
if( fileName.equals("") ){ //如果文件没有被保存过,即文件名为空
FileDialog d=new FileDialog(mainFrame , "save file" , FileDialog.SAVE );//保存文件对话框
d.addWindowListener( new WindowAdapter(){ //关闭文件对话框窗口
public void windowClosing(WindowEvent ee){
System.exit(0);
}
});
d.setVisible(true);
String s = ta.getText();//得到所输入的文本内容
try//异常处理
{
File f = new File( d.getDirectory()+d.getFile());//新建文件
fileName = d.getDirectory()+d.getFile();//得到文件名
BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中
bw.write(s , 0 , s.length());
bw.close();
}
catch(FileNotFoundException fe_){
System.out.println("file not found");
System.exit(0);
}
catch( IOException ie_)
{
System.out.println(" IO error");
System.exit(0);
}
}
else //如果文件已经保存过
{
String s = ta.getText();//得到所输入的文本内容
try//异常处理
{
File f = new File( fileName );//新建文件
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -