📄 notepad.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
/*
*@author lin
*/
public class Notepad extends Frame
{
private MenuBar mb;//工具栏
private Menu m1;
private Menu m2;
private MenuItem mi1,mi2,mi3,mi4,mi5;
//右键菜单
private PopupMenu pm;
private MenuItem pm1,pm2,pm3;
//文本域
private TextArea ta;
Dialog d;
public Notepad(){
super("记事本");
setLayout(new BorderLayout());
mb = new MenuBar();
m1 = new Menu("文件");
m2 = new Menu("关于");
mi1 = new MenuItem("新建");
mi2 = new MenuItem("打开");
mi3 = new MenuItem("保存");
mi4 = new MenuItem("退出");
mi5 = new MenuItem("关于");
m1.add(mi1);
m1.add(mi2);
m1.add(mi3);
m1.add(mi4);
m2.add(mi5);
mb.add(m1);
mb.add(m2);
//右键菜单
pm = new PopupMenu();
pm1 = new MenuItem("粘贴");
pm2 = new MenuItem("复制");
pm3 = new MenuItem("剪切");
pm.add(pm1);
pm.addSeparator();
pm.add(pm2);
pm.addSeparator();
pm.add(pm3);
pm.addSeparator();
//文本域
ta = new TextArea();
enableEvents(AWTEvent.MOUSE_EVENT_MASK);
setMenuBar(mb);
add(ta,BorderLayout.CENTER);
ta.add(pm);
setSize(600,800);
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
//消息框
d = new Dialog(new Frame(),"Welcome!");
d.setLayout(new GridLayout(2,1));
Label msg = new Label("大家一起交流");
d.add(msg);
d.pack();
d.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
d.setVisible(false);
}
});
//监听事件
ta.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e){
if(e.isPopupTrigger()){
pm.show(e.getComponent(),e.getX(),e.getY());
}
}
});
mi1.addActionListener(new ButtonListener());
mi2.addActionListener(new ButtonListener());
mi3.addActionListener(new ButtonListener());
mi4.addActionListener(new ButtonListener());
mi5.addActionListener(new ButtonListener());
/*pm1.addActionListener(new ButtonListener());
pm2.addActionListener(new ButtonListener());
pm3.addActionListener(new ButtonListener());*/
}
public void processMouseEvent(MouseEvent e){
if(e.isPopupTrigger()){
pm.show(e.getComponent(),e.getX(),e.getY());
}
}
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e){
//新建
if(e.getSource()==mi1){
ta.setText("");
}
//打开文件
if(e.getSource()==mi2){
FileDialog fd = new FileDialog(new Frame(),"打开文件");
fd.setVisible(true);
String fileName = fd.getDirectory()+"/"+fd.getFile();
try
{
String content;
FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);
while((content=br.readLine())!=null){
ta.append(content+"\n");
}
br.close();
fr.close();
}
catch (Exception ioe)
{
System.out.println("读取文件错误!");
}
}
//保存文件
if(e.getSource()==mi3){
FileDialog fd = new FileDialog(new Frame(),"保存文件",FileDialog.SAVE);
fd.setVisible(true);
String fileName = fd.getDirectory()+"/"+fd.getFile()+".txt";
try
{
FileWriter fw = new FileWriter(fileName);
PrintWriter pw = new PrintWriter(fw);
pw.print(ta.getText());
pw.close();
fw.close();
}
catch (Exception ioe)
{
ioe.printStackTrace();
}
}
//退出
if(e.getSource()==mi4){
System.exit(0);
}
if(e.getSource()==mi5){
d.setVisible(true);
}
}
}
public static void main(String[] args){
Notepad n = new Notepad();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -