⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jnotepad.java

📁 学生信息管理系统~~~~~~~~~~~~~~~~~~~~~~~~~
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package enigma;

import java.awt.*;
import java.awt.event.*;
import java.awt.datatransfer.*; //此类实现一种使用剪切/复制/粘贴操作传输数据的机制。
import java.io.*; //实现输入输出
import java.util.*; //获取当前时间
import javax.swing.*; //界面
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class JNotepad extends JFrame {
    JTextArea JTAobj;
    JFrame JFobj;
    static JNotepad JF = new JNotepad();
    JTextArea jta = new JTextArea("", 24, 40); //声明文本
    JScrollPane jsp = new JScrollPane(jta); //声明带滚动条的面板
    JMenuBar jmb = new JMenuBar(); //声明菜单
    JMenu file = new JMenu("文件"); //声明菜单项
    JMenu edit = new JMenu("编辑");
    JMenuItem jmi; //声明菜单
    Clipboard clipbd = getToolkit().getSystemClipboard();

    //此类实现一种使用剪切/复制/粘贴操作传输数据的机制。
    String text = "";
    JMenu color;
    JRadioButtonMenuItem bianji;
    JMenu BJCD;
    final JPopupMenu jpm = new JPopupMenu();
    public static JNotepad newJNotepad() {
        return JF;
    }

    private JNotepad() {
        this.setTitle("编辑器"); //设置标题
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置默认的关闭
        this.setLocation(200, 200);
        file.add(jmi = new JMenuItem("新建"));
        jmi.addActionListener(new newL());
        file.add(jmi = new JMenuItem("打开"));
        jmi.addActionListener(new openL());
        file.add(jmi = new JMenuItem("保存"));
        jmi.addActionListener(new saveL());
        file.add(jmi = new JMenuItem("关闭"));
        jmi.addActionListener(new exitL());
        edit.add(jmi = new JMenuItem("字体"));
        jmi.addActionListener(new font());
        edit.add(color = new JMenu("颜色选择"));
        color.add(jmi = new JMenuItem("字体颜色选择"));
        jmi.addActionListener(new ziticolor());
        color.add(jmi = new JMenuItem("背景颜色选择"));
        jmi.addActionListener(new beijincolor());
        edit.add(jmi = new JMenuItem("日期/时间"));
        jmi.addActionListener(new time());
        edit.add(jmi = new JMenuItem("国家"));
        jmi.addActionListener(new guojia());
        edit.add(jmi = new JMenuItem("操作列表"));
        jmi.addActionListener(new caozuo());
        edit.add(BJCD = new JMenu("可编辑"));
        ButtonGroup BJ = new ButtonGroup();
        BJCD.add(bianji = new JRadioButtonMenuItem("可编辑", true));
        bianji.addActionListener(new bianji2());
        BJ.add(bianji);
        BJCD.add(bianji = new JRadioButtonMenuItem("锁定"));
        bianji.addActionListener(new bianji());
        BJ.add(bianji);
        jmb.add(file);
        jmb.add(edit);
        jpm.add(jmi = new JMenuItem("复制"));
        jmi.addActionListener(new copyL());
        jpm.add(jmi = new JMenuItem("剪切"));
        jmi.addActionListener(new cutL());
        jpm.add(jmi = new JMenuItem("粘贴"));
        jmi.addActionListener(new pasteL());
        jpm.add(jmi = new JMenuItem("清除"));
        jmi.addActionListener(new deleteL());
        jpm.add(jmi = new JMenuItem("全选"));
        jmi.addActionListener(new selectAllL());
        jta.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                if (e.getButton() == MouseEvent.BUTTON3)
                    jpm.show(JF, e.getX() + 10, e.getY() + 60);
            }
        });
        this.add(jsp);
        this.setJMenuBar(jmb);
    }

    //保存方法
    void mm() {
        JFileChooser fc = new JFileChooser();
        int returnVal = fc.showSaveDialog(JNotepad.this);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            String savefile = fc.getSelectedFile().getPath();
            if (savefile == null) {
                return;
            } else {
                String docToSave = jta.getText();
                if (docToSave != null) {
                    File fiobj = new File(savefile);
                    File Fioobj = new File(fiobj.getAbsolutePath());
                    try {
                        FileWriter FOutObj = new FileWriter(Fioobj);
                        BufferedWriter writer = new BufferedWriter(FOutObj);
                        writer.write(jta.getText());
                        writer.flush();
                        writer.close();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
            }
        } else {
            return;
        }
    }

    //打开方法
    void open() {
        JFileChooser fc = new JFileChooser();
        int returnVal = fc.showDialog(JNotepad.this, "打开"); //弹出自定义打开菜单
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            String file = fc.getSelectedFile().getPath();
            if (file == null) {
                return;
            }
            try {
                File fiobj = new File(file);
                FileReader FReadObj = null;
                BufferedReader BReadObj = null;
                jta.setText("");
                try {
                    FReadObj = new FileReader(fiobj);
                    BReadObj = new BufferedReader(FReadObj);
                } catch (FileNotFoundException e1) {
                    e1.printStackTrace();
                } while (true) {
                    try {
                        String strmm = BReadObj.readLine();
                        if (strmm != null) {
                            strmm = strmm + "\r\n";
                            jta.setText(jta.getText() + strmm);
                        } else {
                            break;
                        }
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
                BReadObj.close();
                FReadObj.close();
            } catch (IOException io) {
                System.err.println("IOException: " + io.getMessage());
            }
        } else {
            return;
        }
    }

    //  对上面的按键进行监听以及处理
    class newL implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String str12 = jta.getText();
            if (str12.equals(null) || str12.equals("")) {
                jta.setText("");
            } else {
                int a = JOptionPane.showConfirmDialog(JF, "请先保存当前文件");
                if (a == JOptionPane.YES_OPTION) {
                    mm();
                    jta.setText("");
                } else if (a == JOptionPane.NO_OPTION) {
                    jta.setText("");
                } else {

                }
            }
        }
    }


    class openL implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String str12 = jta.getText();
            if (str12.equals(null) || str12.equals("")) {
                jta.setText("");
                open();
            } else {
                int a = JOptionPane.showConfirmDialog(JF, "请先保存当前文件");
                if (a == JOptionPane.YES_OPTION) {
                    mm();
                    JOptionPane.showMessageDialog(JF, "您现在可以打开您需要的文件了");
                    open();
                } else if (a == JOptionPane.NO_OPTION) {
                    jta.setText("");
                    open();
                } else {

                }
            }

        }
    }


    class saveL implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            mm();
        }
    }


    class exitL implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String str12 = jta.getText();
            if (str12.equals(null) || str12.equals("")) {
                jta.setText("");
                System.exit(0);
            } else {
                int a = JOptionPane.showConfirmDialog(JF, "请先保存当前文件");
                if (a == JOptionPane.YES_OPTION) {
                    mm();
                    System.exit(0);
                } else if (a == JOptionPane.NO_OPTION) {
                    jta.setText("");
                    System.exit(0);
                } else {

                }
            }
        }
    }


    class copyL implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String selection = jta.getSelectedText();
            StringSelection clipString = new StringSelection(selection);
            clipbd.setContents(clipString, clipString);
        }
    }


    class cutL implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String selection = jta.getSelectedText();
            StringSelection clipString = new StringSelection(selection);
            clipbd.setContents(clipString, clipString);
            jta.replaceRange("", jta.getSelectionStart(),
                             jta.getSelectionEnd());
        }
    }


    class pasteL implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            Transferable clipData = clipbd.getContents(JNotepad.this);
            try {
                String clipString =
                        (String) clipData.getTransferData(
                                DataFlavor.stringFlavor);
                jta.replaceRange(clipString,
                                 jta.getSelectionStart(),
                                 jta.getSelectionEnd());
            } catch (Exception ex) {
            }
        }
    }


    class deleteL implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String selection = jta.getSelectedText();
            jta.replaceRange("", jta.getSelectionStart(),
                             jta.getSelectionEnd());
        }
    }


    class selectAllL implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            jta.selectAll();
        }
    }


    class beijincolor implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            Color objcolor = JColorChooser.showDialog(JF, "背景色",
                    jta.getBackground());
            if (objcolor != null) {
                jta.setBackground(objcolor);
            }
        }
    }


    class ziticolor implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            Color objcolor = JColorChooser.showDialog(JF, "字体颜色",
                    jta.getBackground());
            if (objcolor != null) {
                jta.setForeground(objcolor);
            }
        }
    }


    class font implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            StyleDialog objsetfont = new StyleDialog(JF);
        }
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -