diff --git "a/src/images/\350\256\260\344\272\213\346\234\254\345\233\276\346\240\207.jpg" "b/src/images/\350\256\260\344\272\213\346\234\254\345\233\276\346\240\207.jpg"
new file mode 100644
index 0000000000000000000000000000000000000000..d848aa46774cc893ec18be0cfe65c672e66618d1
Binary files /dev/null and "b/src/images/\350\256\260\344\272\213\346\234\254\345\233\276\346\240\207.jpg" differ
diff --git a/src/java2020spring/MainFrame.java b/src/java2020spring/MainFrame.java
new file mode 100644
index 0000000000000000000000000000000000000000..e36498f884b35f4c0a38a32c91241861eb1b893a
--- /dev/null
+++ b/src/java2020spring/MainFrame.java
@@ -0,0 +1,648 @@
+package java2020spring;
+
+import java.awt.*;
+
+import java.awt.event.*;
+import java.io.*;
+import java.sql.Date;
+
+import javax.swing.*;
+import javax.swing.event.CaretEvent;
+import javax.swing.event.CaretListener;
+import javax.swing.filechooser.FileNameExtensionFilter;
+import javax.swing.undo.UndoManager;
+
+public class MainFrame extends JFrame{
+ JTextArea textArea;//创建文本区
+ JFileChooser FileChooser;//文件选择器
+ FileReader fileReader;//文件字符输入流
+ FileWriter fileWriter;//文件字符输出流
+ BufferedReader in;//缓冲输入流
+ BufferedWriter out;//缓冲输出流
+ JMenuBar menuBar;//创建菜单条
+ JMenu mnNewMenu,mnNewMenu_1,mnNewMenu_2,mnNewMenu_3,mnNewMenu_4;//创建菜单
+ JMenuItem mntmNewMenuItem,mntmNewMenuItem_1,mntmNewMenuItem_2,mntmNewMenuItem_3,mntmNewMenuItem_4,
+ mntmNewMenuItem_5,mntmNewMenuItem_6,mntmNewMenuItem_7,mntmNewMenuItem_8,mntmNewMenuItem_9,mntmNewMenuItem_10,
+ mntmNewMenuItem_11,mntmNewMenuItem_12,mntmNewMenuItem_13,mntmNewMenuItem_14,mntmNewMenuItem_15,mntmNewMenuItem_16,
+ mntmNewMenuItem_17,mntmNewMenuItem_18,mntmNewMenuItem_19,mntmNewMenuItem_20,mntmNewMenuItem_21,mntmNewMenuItem_22,
+ mntmNewMenuItem_23,mntmNewMenuItem_24,mntmNewMenuItem_25,mntmNewMenuItem_26,mntmNewMenuItem_27,mntmNewMenuItem_28,
+ mntmNewMenuItem_29;//创建菜单项
+ JCheckBoxMenuItem chckbxmntmNewCheckItem,chckbxmntmNewCheckItem_1;//菜单中的可选项
+ UndoManager undoManager;//创建撤销、恢复管理器
+ JPopupMenu popupMenu_1;//创建弹出菜单
+ int line=0;//创建状态栏显示行数
+ int colum=0;//创建状态栏显示列数
+ int length=0;//状态栏显示字数
+
+
+ public static void main(String[] args) {
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ try {
+ MainFrame frame = new MainFrame();
+ frame.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ /**
+ * Create the frame.
+ */
+ public MainFrame() {
+ setIconImage(Toolkit.getDefaultToolkit().getImage("D:\\java\\javademo\\java2021spring\\src\\images\\记事本图标.jpg"));
+ //设置记事本图标
+ setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ setBackground(Color.WHITE);
+ setTitle("小玉记事本");
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ setBounds(100, 100, 800, 600);
+
+ JTextArea textArea = new JTextArea();//创建文本框
+ textArea.setFont(new Font("Monospaced", Font.PLAIN, 14));
+ JScrollPane scroll=new JScrollPane(textArea);//创建文本区滚动条
+ getContentPane().add(scroll,BorderLayout.CENTER);
+ FileChooser=new JFileChooser();//文件选择框
+ FileNameExtensionFilter filter=new FileNameExtensionFilter("文本文件","html","java");//文件过滤
+ FileChooser.setFileFilter(filter);//将过滤器加入到文件选择器中
+
+ JMenuBar menuBar = new JMenuBar();//创建菜单条
+ setJMenuBar(menuBar);//将菜单条放置到窗口顶端
+
+//文件菜单
+ JMenu mnNewMenu = new JMenu("文件(F)");
+ mnNewMenu.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ menuBar.add(mnNewMenu);//添加菜单
+
+ //"新建"功能
+ JMenuItem mntmNewMenuItem= new JMenuItem("新建(N)");
+ mntmNewMenuItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setText(null);//新建功能清空文本框
+ }
+ });
+ mntmNewMenuItem.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu.add(mntmNewMenuItem);
+ mntmNewMenuItem.setMnemonic('N');
+ mntmNewMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));
+
+ //"打开"功能
+ JMenuItem mntmNewMenuItem_1 = new JMenuItem("打开(O)...");
+ mntmNewMenuItem_1.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ int state=FileChooser.showOpenDialog(null);//将文件选择器置于屏幕中央
+ if(state==JFileChooser.APPROVE_OPTION){
+ textArea.setText(null);//清空文本区
+ try{ File dir=FileChooser.getCurrentDirectory();//获取当前目录
+ String name=FileChooser.getSelectedFile().getName();//获取文件名
+ File file=new File(dir,name);
+ fileReader=new FileReader(file);//输入选中文件的文本
+ in=new BufferedReader(fileReader);//将文本写入缓存
+ String string=null;
+ while((string=in.readLine())!=null){//从文件中读取文本行
+ textArea.append(string+"\n");
+ }
+ in.close();//关闭上层流,缓存被立刻写入目的地
+ fileReader.close();//关闭文件字符输入流
+ }
+ catch(IOException e1){
+ System.out.println("Error ");
+ }//捕获文件读写发生的异常
+ }
+ }
+ });
+ mntmNewMenuItem_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu.add(mntmNewMenuItem_1);
+ mntmNewMenuItem_1.setMnemonic('O');
+ mntmNewMenuItem_1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK));
+
+ //"保存"功能
+ JMenuItem mntmNewMenuItem_2 = new JMenuItem("保存(S)");
+ mntmNewMenuItem_2.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ int state=FileChooser.showOpenDialog(null);//将文件选择器置于屏幕中央
+ if(state==JFileChooser.APPROVE_OPTION){
+ try{ File dir=FileChooser.getCurrentDirectory();//获取当前目录
+ String name=FileChooser.getSelectedFile().getName();//获取文件名
+ File file=new File(dir,name);
+ fileWriter=new FileWriter(file);//将文本写入字符输出流
+ out=new BufferedWriter(fileWriter);//将文本写入缓冲输出流
+ out.write(textArea.getText());
+ out.flush();//把缓冲区里的内容写到目的地
+ out.close();//关闭上层流
+ fileWriter.close();
+ }
+ catch(IOException e1){
+ System.out.println("Error ");
+ }//捕获文件读写发生的异常
+ }
+ }
+ });
+ mntmNewMenuItem_2.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu.add(mntmNewMenuItem_2);
+ mntmNewMenuItem_2.setMnemonic('S');
+ mntmNewMenuItem_2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK));
+
+ //"另存为"功能
+ JMenuItem mntmNewMenuItem_3 = new JMenuItem("另存为(A)");
+ mntmNewMenuItem_3.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ int state=FileChooser.showOpenDialog(null);//将文件选择器置于屏幕中央
+ if(state==JFileChooser.APPROVE_OPTION){
+ try{ File dir=FileChooser.getCurrentDirectory();//获取当前目录
+ String name=FileChooser.getSelectedFile().getName();//获取文件名
+ File file=new File(dir,name);
+ fileWriter=new FileWriter(file);//将文本写入字符输出流
+ out=new BufferedWriter(fileWriter);//将文本写入缓冲输出流
+ out.write(textArea.getText());
+ out.flush();//把缓冲区里的内容写到目的地
+ out.close();//关闭上层流
+ fileWriter.close();
+ }
+ catch(IOException e1){
+ System.out.println("Error ");
+ }//捕获文件读写发生的异常
+ }
+ }
+ });
+ mntmNewMenuItem_3.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mntmNewMenuItem_3.setMnemonic('A');
+ mntmNewMenuItem_3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK|ActionEvent.SHIFT_MASK));
+ mnNewMenu.add(mntmNewMenuItem_3);
+ mnNewMenu.addSeparator();
+
+ //"退出"功能
+ JMenuItem mntmNewMenuItem_4 = new JMenuItem("退出(X)");
+ mntmNewMenuItem_4.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ System.exit(0);//清空文本区,退出程序
+ }
+ });
+ mntmNewMenuItem_4.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu.add(mntmNewMenuItem_4);
+ mntmNewMenuItem_4.setMnemonic('X');
+
+//编辑菜单
+ JMenu mnNewMenu_1 = new JMenu("编辑(E)");
+ mnNewMenu_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ menuBar.add(mnNewMenu_1);
+
+ //"撤销"功能
+ JMenuItem mntmNewMenuItem_5 = new JMenuItem("撤销(U)");
+ UndoManager undoManager=new UndoManager();
+ textArea.getDocument().addUndoableEditListener(undoManager);//为文本添加监听器
+ mntmNewMenuItem_5.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if(undoManager.canUndo()) {
+ undoManager.undo();//撤销上一个输入的内容
+ } else {
+ JOptionPane.showMessageDialog(null, "无法撤销","警告",JOptionPane.WARNING_MESSAGE);
+ }
+ }
+ });
+ mntmNewMenuItem_5.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_1.add(mntmNewMenuItem_5);
+ mntmNewMenuItem_5.setMnemonic('U');
+ mntmNewMenuItem_5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,ActionEvent.CTRL_MASK));
+
+ //"恢复"功能
+ JMenuItem mntmNewMenuItem_15 = new JMenuItem("恢复");
+ mntmNewMenuItem_15.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if(undoManager.canRedo()) {
+ undoManager.redo();//恢复撤销的内容
+ } else {
+ JOptionPane.showMessageDialog(null, "无法恢复","警告",JOptionPane.WARNING_MESSAGE);
+ }
+ }
+ });
+ mntmNewMenuItem_15.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_1.add(mntmNewMenuItem_15);
+ mnNewMenu_1.addSeparator();
+
+ //"剪切"功能
+ JMenuItem mntmNewMenuItem_6 = new JMenuItem("剪切(T)");
+ mntmNewMenuItem_6.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.cut();//剪切选中的内容
+ }
+ });
+ mntmNewMenuItem_6.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_1.add(mntmNewMenuItem_6);
+ mntmNewMenuItem_6.setMnemonic('T');
+ mntmNewMenuItem_6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK));
+
+ //"复制"功能
+ JMenuItem mntmNewMenuItem_7 = new JMenuItem("复制(C)");
+ mntmNewMenuItem_7.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.copy();//复制选中的内容
+ }
+ });
+ mntmNewMenuItem_7.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_1.add(mntmNewMenuItem_7);
+ mntmNewMenuItem_7.setMnemonic('C');
+ mntmNewMenuItem_7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK));
+
+ //"粘贴"功能
+ JMenuItem mntmNewMenuItem_8 = new JMenuItem("粘贴(P)");
+ mntmNewMenuItem_8.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.paste();//输出剪切或复制的内容
+ }
+ });
+ mntmNewMenuItem_8.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_1.add(mntmNewMenuItem_8);
+ mntmNewMenuItem_8.setMnemonic('P');
+ mntmNewMenuItem_8.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK));
+ mnNewMenu_1.addSeparator();
+
+ //"全选"功能
+ JMenuItem mntmNewMenuItem_12 = new JMenuItem("全选(A)");
+ mntmNewMenuItem_12.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.selectAll();//选中文本区中的所有内容
+ }
+ });
+ mntmNewMenuItem_12.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_1.add(mntmNewMenuItem_12);
+ mntmNewMenuItem_12.setMnemonic('A');
+ mntmNewMenuItem_12.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));
+
+ //"删除"功能
+ JMenuItem mntmNewMenuItem_9 = new JMenuItem("删除(DEL)");
+ mntmNewMenuItem_9.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ String string=textArea.getText().toString();
+ textArea.setText(string.substring(0,textArea.getSelectionStart()));//删除选中的文本
+ }
+ });
+ mntmNewMenuItem_9.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_1.add(mntmNewMenuItem_9);
+ mntmNewMenuItem_9.setMnemonic(KeyEvent.VK_DELETE);
+
+//格式菜单
+ JMenu mnNewMenu_2 = new JMenu("格式(O)");
+ mnNewMenu_2.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ menuBar.add(mnNewMenu_2);
+
+ //"自动换行"功能
+ JCheckBoxMenuItem chckbxmntmNewCheckItem = new JCheckBoxMenuItem("自动换行(W)");
+ chckbxmntmNewCheckItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if(chckbxmntmNewCheckItem.isSelected()) {
+ textArea.setLineWrap(true);
+ } else {
+ textArea.setLineWrap(false);
+ }
+ }
+ });
+ chckbxmntmNewCheckItem.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_2.add(chckbxmntmNewCheckItem);
+ chckbxmntmNewCheckItem.setMnemonic('W');
+
+ //"背景颜色"功能
+ JMenu mnNewMenu_5 = new JMenu("背景颜色");
+ mnNewMenu_5.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_2.add(mnNewMenu_5);
+ //
+ JMenuItem mntmNewMenuItem_23 = new JMenuItem("白色");
+ mntmNewMenuItem_23.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setBackground(Color.WHITE);
+ }
+ });
+ mntmNewMenuItem_23.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_5.add(mntmNewMenuItem_23);
+
+ //
+ JMenuItem mntmNewMenuItem_24 = new JMenuItem("黑色");
+ mntmNewMenuItem_24.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setBackground(Color.BLACK);
+ }
+ });
+ mntmNewMenuItem_24.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_5.add(mntmNewMenuItem_24);
+
+ //
+ JMenuItem mntmNewMenuItem_25 = new JMenuItem("灰色");
+ mntmNewMenuItem_25.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setBackground(Color.GRAY);
+ }
+ });
+ mntmNewMenuItem_25.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_5.add(mntmNewMenuItem_25);
+
+ //
+ JMenuItem mntmNewMenuItem_22 = new JMenuItem("粉色");
+ mntmNewMenuItem_22.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setBackground(Color.PINK);
+ }
+ });
+ mntmNewMenuItem_22.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_5.add(mntmNewMenuItem_22);
+
+ //
+ JMenuItem mntmNewMenuItem_26 = new JMenuItem("红色");
+ mntmNewMenuItem_26.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setBackground(Color.RED);
+ }
+ });
+ mntmNewMenuItem_26.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_5.add(mntmNewMenuItem_26);
+
+ //
+ JMenuItem mntmNewMenuItem_27 = new JMenuItem("黄色");
+ mntmNewMenuItem_27.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setBackground(Color.YELLOW);
+ }
+ });
+ mntmNewMenuItem_27.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_5.add(mntmNewMenuItem_27);
+
+ //
+ JMenuItem mntmNewMenuItem_28 = new JMenuItem("绿色");
+ mntmNewMenuItem_28.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setBackground(Color.GREEN);
+ }
+ });
+ mntmNewMenuItem_28.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_5.add(mntmNewMenuItem_28);
+
+ //"字体颜色"功能
+ JMenu mnNewMenu_6 = new JMenu("字体颜色");
+ mnNewMenu_6.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_2.add(mnNewMenu_6);
+
+ JMenuItem mntmNewMenuItem_29 = new JMenuItem("白色");
+ mntmNewMenuItem_29.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setForeground(Color.WHITE);
+ }
+ });
+ mntmNewMenuItem_29.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_6.add(mntmNewMenuItem_29);
+
+ JMenuItem mntmNewMenuItem_30 = new JMenuItem("黑色");
+ mntmNewMenuItem_30.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setForeground(Color.BLACK);
+ }
+ });
+ mntmNewMenuItem_30.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_6.add(mntmNewMenuItem_30);
+
+ JMenuItem mntmNewMenuItem_31 = new JMenuItem("粉色");
+ mntmNewMenuItem_31.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setForeground(Color.PINK);
+ }
+ });
+ mntmNewMenuItem_31.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_6.add(mntmNewMenuItem_31);
+
+ JMenuItem mntmNewMenuItem_32 = new JMenuItem("黄色");
+ mntmNewMenuItem_32.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setForeground(Color.YELLOW);
+ }
+ });
+ mntmNewMenuItem_32.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_6.add(mntmNewMenuItem_32);
+
+ JMenuItem mntmNewMenuItem_33 = new JMenuItem("绿色");
+ mntmNewMenuItem_33.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setForeground(Color.GREEN);
+ }
+ });
+ mntmNewMenuItem_33.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_6.add(mntmNewMenuItem_33);
+
+ JMenuItem mntmNewMenuItem_34 = new JMenuItem("红色");
+ mntmNewMenuItem_34.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.setForeground(Color.RED);
+ }
+ });
+ mntmNewMenuItem_34.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_6.add(mntmNewMenuItem_34);
+
+
+//快捷菜单
+ JPopupMenu popupMenu_1 = new JPopupMenu();
+ addPopup(textArea, popupMenu_1);
+ //撤销
+ JMenuItem mntmNewMenuItem_16 = new JMenuItem("撤销(U)");
+ mntmNewMenuItem_16.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if(undoManager.canUndo()) {
+ undoManager.undo();//撤销上一个输入的内容
+ } else {
+ JOptionPane.showMessageDialog(null, "无法撤销","警告",JOptionPane.WARNING_MESSAGE);
+ }
+ }
+ });
+ mntmNewMenuItem_16.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ popupMenu_1.add(mntmNewMenuItem_16);
+ mntmNewMenuItem_16.setMnemonic('U');
+
+ JSeparator separator = new JSeparator();
+ popupMenu_1.add(separator);
+
+ //剪切
+ JMenuItem mntmNewMenuItem_17 = new JMenuItem("剪切(T)");
+ mntmNewMenuItem_17.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.cut();//剪切选中的内容
+ }
+ });
+ mntmNewMenuItem_17.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ popupMenu_1.add(mntmNewMenuItem_17);
+ mntmNewMenuItem_17.setMnemonic('T');
+
+ //复制
+ JMenuItem mntmNewMenuItem_18 = new JMenuItem("复制(C)");
+ mntmNewMenuItem_18.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.copy();//复制选中的内容
+ }
+ });
+ mntmNewMenuItem_18.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ popupMenu_1.add(mntmNewMenuItem_18);
+ mntmNewMenuItem_18.setMnemonic('C');
+
+ //粘贴
+ JMenuItem mntmNewMenuItem_19 = new JMenuItem("粘贴(P)");
+ mntmNewMenuItem_19.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.paste();//输出剪切或复制的内容
+ }
+ });
+ mntmNewMenuItem_19.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ popupMenu_1.add(mntmNewMenuItem_19);
+ mntmNewMenuItem_19.setMnemonic('P');
+
+ //删除
+ JMenuItem mntmNewMenuItem_20 = new JMenuItem("删除(D)");
+ mntmNewMenuItem_20.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ String string=textArea.getText().toString();
+ textArea.setText(string.substring(0,textArea.getSelectionStart()));//删除选中的文本
+ }
+ });
+ mntmNewMenuItem_20.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ popupMenu_1.add(mntmNewMenuItem_20);
+ mntmNewMenuItem_20.setMnemonic('D');
+
+ JSeparator separator_1 = new JSeparator();
+ popupMenu_1.add(separator_1);
+
+ //全选
+ JMenuItem mntmNewMenuItem_21 = new JMenuItem("全选(A)");
+ mntmNewMenuItem_21.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ textArea.selectAll();//选中文本区中的所有内容
+ }
+ });
+ mntmNewMenuItem_21.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ popupMenu_1.add(mntmNewMenuItem_21);
+ mntmNewMenuItem_21.setMnemonic('A');
+
+//查看菜单
+ JMenu mnNewMenu_3 = new JMenu("查看(V)");
+ mnNewMenu_3.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ menuBar.add(mnNewMenu_3);
+
+ //"状态栏"功能
+ JCheckBoxMenuItem chckbxmntmNewCheckItem_1 = new JCheckBoxMenuItem("状态栏(S)");
+ JToolBar toolBar=new JToolBar();//创建工具栏
+ toolBar.setSize(textArea.getSize().width,12);
+ getContentPane().add(toolBar,BorderLayout.SOUTH);
+ Date timeDate=new Date(System.currentTimeMillis());//创建时间
+ Label label_1=new Label("时间:"+timeDate);//时间
+ Label label_2=new Label("第"+line+"行,第"+colum+"列");//状态
+ Label label_3=new Label("共计"+length+"字");//字数统计
+ toolBar.add(label_1);
+ toolBar.addSeparator();
+ toolBar.add(label_2);
+ toolBar.addSeparator();
+ toolBar.add(label_3);
+ textArea.addCaretListener(new CaretListener() {
+ public void caretUpdate(CaretEvent e) {
+ try { int position=textArea.getCaretPosition();
+ int set=e.getDot();
+ line=textArea.getLineOfOffset(e.getDot());
+ colum=e.getDot() - textArea.getLineStartOffset(line);
+ label_2.setText("第"+(line+1)+"行,第"+(colum+1)+"列");
+ length=textArea.getText().replaceAll("\\s+", "").length();
+ label_3.setText("共计"+length+"字");
+ } catch (Exception e1) {}
+ }
+ });
+ toolBar.setVisible(true);
+ toolBar.setFloatable(false);
+ label_1.setVisible(true);
+ label_2.setVisible(true);
+ label_3.setVisible(true);
+ chckbxmntmNewCheckItem_1.setState(true);
+ chckbxmntmNewCheckItem_1.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if(chckbxmntmNewCheckItem_1.getState()) {
+ label_2.setVisible(true);
+ label_3.setVisible(true);
+ }
+ else {
+ label_2.setVisible(false);
+ label_3.setVisible(false);
+ }
+ }
+ });
+ chckbxmntmNewCheckItem_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_3.add(chckbxmntmNewCheckItem_1);
+ chckbxmntmNewCheckItem_1.setMnemonic('S');
+
+//帮助菜单
+ JMenu mnNewMenu_4 = new JMenu("帮助(H)");
+ mnNewMenu_4.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ menuBar.add(mnNewMenu_4);
+
+ //"查看帮助"功能
+ JMenuItem mntmNewMenuItem_13 = new JMenuItem("查看帮助(H)");
+ mntmNewMenuItem_13.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ JFrame frame_2=new JFrame("查看帮助");
+ frame_2.setLocation(200, 50);
+ frame_2.setSize(800,500);
+ frame_2.setVisible(true);
+ frame_2.setBackground(Color.LIGHT_GRAY);
+ JLabel label_5=new JLabel();
+ frame_2.add(label_5);
+ label_5.setText("记事本帮助
小玉记事本共有5个大的菜单项目,总计19余个子功能
菜单一“文件”
//“新建”功能:鼠标点击新建按钮"
+ + ",立即清空记事本中所有内容(不做保存)。快捷键:Ctrl+N
//“打开”功能:鼠标点击打开按钮,弹出文件选择器窗口,可打开本地文件。"
+ + "文件类型分为文本文件和所有文件。快捷键:Ctrl+O
//“保存”功能:鼠标点击保存按钮,弹出文件选择窗口,选择保存路径并命名即可保存。快捷键:"
+ + "Ctrl+S
//“另存为”功能:鼠标点击另存为按钮,,弹出文件选择窗口,选择保存路径并命名即可保存。快捷键:Ctrl+Shift+S
//“退出”"
+ + "功能:鼠标点击退出按钮,立即关闭记事本窗口(不做保存)。
菜单二“编辑”
//“撤销”功能:鼠标点击撤销按钮,撤销上一步操作。快捷键:Ctrl+Z"
+ + "
//“恢复”功能:鼠标点击回复按钮,恢复上一步撤销的操作。
//“剪切”功能:鼠标选中文本,点击剪切按钮,即可剪切文本,再点击粘贴按钮,即可"
+ + "将剪切下来的文本粘贴在光标的位置之后。快捷键:Ctrl+X
//“复制”功能:鼠标选中文本,点击复制按钮,即可复制文本,再点击粘贴按钮,即可将选中"
+ + "的文本粘贴在光标的位置之后。快捷键:Ctrl+C
//“粘贴”功能:鼠标点击粘贴按钮,将剪切或复制的文本粘贴在光标的位置之后。快捷键:Ctrl+V
"
+ + "//“全选”功能:鼠标点击全选按钮,选中文本框中的所有内容。快捷键:Ctrl+A
//“删除”功能:鼠标选中文本,点击删除按钮,即可删除所选中的内容。
"
+ + "菜单三“格式”
//“自动换行”功能:鼠标勾选自动换行按钮,当文本行溢出记事本框时自动换行。
//“背景颜色”功能:鼠标移动至背景颜色菜单上,将会"
+ + "打开子菜单,点击所需设置颜色的按钮,即可改变文本区颜色(初始颜色为白色)。
//“字体颜色”功能:鼠标移动至字体颜色菜单上,将会打开子菜单,点击所需"
+ + "设置颜色的按钮,即可改变输入文本的颜色(初始颜色为黑色)。
菜单四“查看”
//“状态栏”功能:鼠标取消状态栏按钮,记事本下方显示行、列数、总共"
+ + "字数将会消失,时间显示不变(初始状态为选中)。
菜单五“帮助”
//“查看帮助”功能:鼠标点击查看帮助按钮,将弹出小玉记事本的使用帮助,功能简介等。"
+ + "
//“关于记事本”功能:鼠标点击关于记事本按钮,将弹出小玉记事本的作者信息以及留言。
“快捷菜单”功能:鼠标右键点击文本框任意位置,将弹出"
+ + "快捷编辑菜单。");
+ label_5.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 12));
+ }
+ });
+ mntmNewMenuItem_13.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_4.add(mntmNewMenuItem_13);
+ mntmNewMenuItem_13.setMnemonic('H');
+
+ //"关于记事本"功能
+ JMenuItem mntmNewMenuItem_14 = new JMenuItem("关于记事本(A)");
+ mntmNewMenuItem_14.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ JFrame frame_1=new JFrame("关于记事本");
+ frame_1.setLocation(200, 50);
+ frame_1.setSize(500,500);
+ frame_1.setVisible(true);
+ JLabel label_4=new JLabel("————————————欢迎使用小玉的记事本————————————
小玉的邮箱:1751012123@qq.com "
+ + "如有错误,还请老师斧正
吴小玉 信管1班 202025710123");
+ label_4.setHorizontalAlignment(SwingConstants.CENTER);
+ frame_1.getContentPane().add(label_4);
+ }
+ });
+ mntmNewMenuItem_14.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 14));
+ mnNewMenu_4.add(mntmNewMenuItem_14);
+ mntmNewMenuItem_14.setMnemonic('A');
+
+ }
+
+ private static void addPopup(Component component, final JPopupMenu popup) {
+ component.addMouseListener(new MouseAdapter() {
+ public void mousePressed(MouseEvent e) {
+ if (e.isPopupTrigger()) {
+ showMenu(e);
+ }
+ }
+ public void mouseReleased(MouseEvent e) {
+ if (e.isPopupTrigger()) {
+ showMenu(e);
+ }
+ }
+ private void showMenu(MouseEvent e) {
+ popup.show(e.getComponent(), e.getX(), e.getY());
+ }
+ });
+ }
+ }