📄 jsb.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import javax.swing.*;
import java.awt.Font;
import java.io.*;
import java.util.*;
import java.applet.*;
public class jsb extends Frame implements ActionListener
{
MenuBar mb;
JTextArea t;
String str;
File file=null;
JFileChooser filechooser;
JColorChooser colorchooser;
String wenben;
String string;
int start;
int end;
Color color=Color.red;
bangzhu bz;
public jsb()
{
super("记事本");
setSize(600,500);
filechooser=new JFileChooser();
colorchooser=new JColorChooser();
mb=new MenuBar();
setMenuBar(mb);
Menu m1=new Menu("文件");
//m1.setMnemonic('F');
mb.add(m1);
MenuItem mi2=new MenuItem("新建",new MenuShortcut(KeyEvent.VK_N));
m1.add(mi2);
mi2.addActionListener(this);
MenuItem mi3=new MenuItem("打开",new MenuShortcut(KeyEvent.VK_O));
m1.add(mi3);
mi3.addActionListener(this);
m1.addSeparator();
MenuItem mi4=new MenuItem("保存",new MenuShortcut(KeyEvent.VK_S));
m1.add(mi4);
mi4.addActionListener(this);
MenuItem mi5=new MenuItem("另存为");
m1.add(mi5);
mi5.addActionListener(this);
m1.addSeparator();
mi3.addActionListener(this);
MenuItem mi1=new MenuItem("退出");
m1.add(mi1);
mi1.addActionListener(this);
Menu m2=new Menu("编辑");
mb.add(m2);
m2.addSeparator();
MenuItem mi31=new MenuItem("剪切",new MenuShortcut(KeyEvent.VK_X));
m2.add(mi31);
mi31.addActionListener(this);
MenuItem mi41=new MenuItem("复制",new MenuShortcut(KeyEvent.VK_C));
m2.add(mi41);
m2.addSeparator();
mi41.addActionListener(this);
MenuItem mi51=new MenuItem("粘贴",new MenuShortcut(KeyEvent.VK_V));
m2.add(mi51);
mi51.addActionListener(this);
MenuItem mi61=new MenuItem("删除");
m2.add(mi61);
mi61.addActionListener(this);
m2.addSeparator();
MenuItem mi101=new MenuItem("全选",new MenuShortcut(KeyEvent.VK_A));
m2.add(mi101);
mi101.addActionListener(this);
MenuItem mi102=new MenuItem("时间日期");
m2.add(mi102);
mi102.addActionListener(this);
Menu m3=new Menu("格式");
mb.add(m3);
MenuItem mi211=new MenuItem("自动换行");
m3.add(mi211);
mi211.addActionListener(this);
MenuItem mi311=new MenuItem("颜色");
m3.add(mi311);
mi311.addActionListener(this);
Menu mi411=new Menu("大小");
MenuItem mi4111=new MenuItem("10");
MenuItem mi4112=new MenuItem("20");
MenuItem mi4113=new MenuItem("30");
MenuItem mi4114=new MenuItem("40");
mi411.add(mi4111);
mi411.add(mi4112);
mi411.add(mi4113);
mi411.add(mi4114);
m3.add(mi411);
mi411.addActionListener(this);
mi4111.addActionListener(this);
mi4112.addActionListener(this);
mi4113.addActionListener(this);
mi4114.addActionListener(this);
Menu m4=new Menu("设置");
Menu m41=new Menu("字体");
Menu m42=new Menu("风格");
MenuItem m411=new MenuItem("宋体");
MenuItem m412=new MenuItem("楷体");
MenuItem m413=new MenuItem("仿宋体");
MenuItem m414=new MenuItem("Courier");
MenuItem m421=new MenuItem("正常字体");
MenuItem m422=new MenuItem("黑体");
MenuItem m423=new MenuItem("斜体");
MenuItem m424=new MenuItem("黑体+斜体");
mb.add(m4);
m41.add(m411);
m41.add(m412);
m41.add(m413);
m41.add(m414);
m42.add(m421);
m42.add(m422);
m42.add(m423);
m42.add(m424);
m4.add(m41);
m4.add(m42);
m411.addActionListener(this);
m412.addActionListener(this);
m413.addActionListener(this);
m414.addActionListener(this);
m421.addActionListener(this);
m422.addActionListener(this);
m423.addActionListener(this);
m424.addActionListener(this);
Menu m5=new Menu("帮助");
MenuItem mi55=new MenuItem("关于记事本");
mb.add(m5);
m5.add(mi55);
mi55.addActionListener(this);
t=new JTextArea();
add(t);
addWindowListener(new WindowAdapter()
{
public void windowClosing (WindowEvent e)
{
System.exit(0);
}
});
bz=new bangzhu();
bz.setVisible(false);
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
str=sdf.format(date);
wenben=t.getText();
show();
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("退出"))
{
String as=t.getText();
if(wenben.equals(as))
{ this.dispose();System.exit(0);}
else
{filechooser.setDialogTitle("请先保存文件");
filechooser.showSaveDialog(null);
FileWriter q=null;
try{ file=filechooser.getSelectedFile();}catch(Exception ex){System.out.println("");}
try{q=new FileWriter(file);}catch(Exception ex){System.out.println("");}
try{q.write(t.getText());}catch(Exception ex){System.out.println("");}
try{q.close();}catch(Exception ex){System.out.println("");}
this.dispose();System.exit(0);}
this.dispose();System.exit(0);
}
if(e.getActionCommand().equals("新建"))
{
String as=t.getText();
if(wenben.equals(as))
t.setText("");
else
{filechooser.setDialogTitle("请先保存文件");
filechooser.showSaveDialog(null);
FileWriter q=null;
try{ file=filechooser.getSelectedFile();}catch(Exception ex){System.out.println("");}
try{q=new FileWriter(file);}catch(Exception ex){System.out.println("");}
try{q.write(t.getText());}catch(Exception ex){System.out.println("");}
try{q.close();}catch(Exception ex){System.out.println("");}
t.setText("");
}
}
if(e.getActionCommand().equals("打开"))
{
// wenben=t.getText();
String c=null;
t.setText("");
BufferedReader f=null;
filechooser.showOpenDialog(null);
file=filechooser.getSelectedFile();
try{f=new BufferedReader(new FileReader(file));}catch(Exception ex) {System.out.println("");}
try{c=f.readLine();}catch(Exception ex) {System.out.println("");}
while(c!=null)
{
t.append(c);
t.append("\n");
try{c=f.readLine();}catch(Exception ex) {System.out.println("");}
}
try{f.close();}catch(Exception ex) {System.out.println("");}
}
if(e.getActionCommand().equals("保存"))
{
filechooser.showSaveDialog(null);
FileWriter q=null;
try{ file=filechooser.getSelectedFile();}catch(Exception ex){System.out.println("");}
try{q=new FileWriter(file);}catch(Exception ex){System.out.println("");}
try{q.write(t.getText());}catch(Exception ex){System.out.println("");}
try{q.close();}catch(Exception ex){System.out.println("");}
wenben=t.getText();
}
if(e.getActionCommand().equals("另存为"))
{
filechooser.setDialogTitle("另存为");
filechooser.showSaveDialog(null);
FileWriter q=null;
try{ file=filechooser.getSelectedFile();}catch(Exception ex){System.out.println("");}
try{q=new FileWriter(file);}catch(Exception ex){System.out.println("");}
try{q.write(t.getText());}catch(Exception ex){System.out.println("");}
try{q.close();}catch(Exception ex){System.out.println("");}
}
if(e.getActionCommand().equals("10"))
{
int size,style;
String name;
Font ft;
ft=t.getFont();
name=ft.getName();
style=ft.getStyle();
ft=new Font(name,style,10);
t.setFont(ft);
}
if(e.getActionCommand().equals("40"))
{
int size,style;
String name;
Font ft;
ft=t.getFont();
name=ft.getName();
style=ft.getStyle();
ft=new Font(name,style,40);
t.setFont(ft);
}
if(e.getActionCommand().equals("20"))
{
int size,style;
String name;
Font ft;
ft=t.getFont();
name=ft.getName();
style=ft.getStyle();
ft=new Font(name,style,20);
t.setFont(ft);
}
if(e.getActionCommand().equals("30"))
{
int size,style;
String name;
Font ft;
ft=t.getFont();
name=ft.getName();
style=ft.getStyle();
ft=new Font(name,style,30);
t.setFont(ft);
}
if(e.getActionCommand().equals("复制"))
{
string=t.getSelectedText();
}
if(e.getActionCommand().equals("剪切"))
{
start=t.getSelectionStart();
end=t.getSelectionEnd();
t.replaceRange("",start,end);
}
if(e.getActionCommand().equals("粘贴"))
{
start=t.getSelectionStart();
end=t.getSelectionEnd();
t.replaceRange(string,start,end);
}
if(e.getActionCommand().equals("删除"))
{
start=t.getSelectionStart();
end=t.getSelectionEnd();
t.replaceRange("",start,end);
}
if(e.getActionCommand().equals("全选"))
{
t.selectAll();
}
if(e.getActionCommand().equals("时间日期"))
{
String n=t.getText();
String m=n+str;
t.setText(m);
}
if(e.getActionCommand().equals("自动换行"))
{
t.setLineWrap(true);
}
if(e.getActionCommand().equals("颜色"))
{
color = JColorChooser.showDialog(this,"",color);
t.setForeground(color);
}
if(e.getActionCommand().equals("宋体"))
{
int style,size;
Font ft;
ft=t.getFont();
style=ft.getStyle();
size=ft.getSize();
ft=new Font("宋体",style,size);
t.setFont(ft);
}
if(e.getActionCommand().equals("楷体"))
{
int style,size;
Font ft;
ft=t.getFont();
style=ft.getStyle();
size=ft.getSize();
ft=new Font("楷体",style,size);
t.setFont(ft);
}
if(e.getActionCommand().equals("仿宋体"))
{
int style,size;
Font ft;
ft=t.getFont();
style=ft.getStyle();
size=ft.getSize();
ft=new Font("仿宋体",style,size);
t.setFont(ft);
}
if(e.getActionCommand().equals("Courier"))
{
int style,size;
Font ft;
ft=t.getFont();
style=ft.getStyle();
size=ft.getSize();
ft=new Font("Courier",style,size);
t.setFont(ft);
}
if(e.getActionCommand().equals("正常字体"))
{
String sr;
int size;
Font ft;
ft=t.getFont();
size=ft.getSize();
sr=ft.getName();
ft=new Font(sr,Font.PLAIN,size);
t.setFont(ft);
}
if(e.getActionCommand().equals("黑体"))
{
String sr;
int size;
Font ft;
ft=t.getFont();
size=ft.getSize();
sr=ft.getName();
ft=new Font(sr,Font.BOLD,size);
t.setFont(ft);
}
if(e.getActionCommand().equals("斜体"))
{
String sr;
int size;
Font ft;
ft=t.getFont();
size=ft.getSize();
sr=ft.getName();
ft=new Font(sr,Font.ITALIC,size);
t.setFont(ft);
}
if(e.getActionCommand().equals("黑体+斜体"))
{
String sr;
int size;
Font ft;
ft=t.getFont();
size=ft.getSize();
sr=ft.getName();
ft=new Font(sr,Font.ITALIC+Font.BOLD,size);
t.setFont(ft);
}
if(e.getActionCommand().equals("关于记事本"))
{
bz.setVisible(true);
}
repaint();
}
public static void main(String args[])
{
jsb j=new jsb();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -