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

📄 notepad.jad

📁 我用Java写的记事本的源代码
💻 JAD
📖 第 1 页 / 共 4 页
字号:
// Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov  Date: 2009-2-15 PM 06:46:07
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   Notepad.java

import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.io.*;
import java.util.Calendar;
import java.util.Date;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.Document;
import javax.swing.undo.CannotUndoException;
import javax.swing.undo.UndoManager;

public class Notepad extends JFrame
    implements ActionListener, DocumentListener
{
    class UndoHandler
        implements UndoableEditListener
    {

        public void undoableEditHappened(UndoableEditEvent undoableeditevent)
        {
            undo.addEdit(undoableeditevent.getEdit());
        }

        final Notepad this$0;

        UndoHandler()
        {
            this$0 = Notepad.this;
            super();
        }
    }


    public Notepad()
    {
        super("\u5F20\u9009\u4EF2\u7684\u8BB0\u4E8B\u672C");
        toolkit = Toolkit.getDefaultToolkit();
        clipBoard = toolkit.getSystemClipboard();
        undo = new UndoManager();
        undoHandler = new UndoHandler();
        isNewFile = true;
        JMenuBar jmenubar = new JMenuBar();
        fileMenu = new JMenu("\u6587\u4EF6(F)");
        fileMenu.setMnemonic('F');
        fileMenu_New = new JMenuItem("\u65B0\u5EFA(N)");
        fileMenu_New.setAccelerator(KeyStroke.getKeyStroke(78, 2));
        fileMenu_New.addActionListener(this);
        fileMenu_Open = new JMenuItem("\u6253\u5F00(O)...");
        fileMenu_Open.setAccelerator(KeyStroke.getKeyStroke(79, 2));
        fileMenu_Open.addActionListener(this);
        fileMenu_Save = new JMenuItem("\u4FDD\u5B58(S)");
        fileMenu_Save.setAccelerator(KeyStroke.getKeyStroke(83, 2));
        fileMenu_Save.addActionListener(this);
        fileMenu_SaveAs = new JMenuItem("\u53E6\u5B58\u4E3A(A)...");
        fileMenu_SaveAs.addActionListener(this);
        fileMenu_PageSetUp = new JMenuItem("\u9875\u9762\u8BBE\u7F6E(U)...");
        fileMenu_PageSetUp.addActionListener(this);
        fileMenu_Print = new JMenuItem("\u6253\u5370(P)...");
        fileMenu_Print.setAccelerator(KeyStroke.getKeyStroke(80, 2));
        fileMenu_Print.addActionListener(this);
        fileMenu_Exit = new JMenuItem("\u9000\u51FA(X)");
        fileMenu_Exit.addActionListener(this);
        editMenu = new JMenu("\u7F16\u8F91(E)");
        editMenu.setMnemonic('E');
        editMenu.addMenuListener(new MenuListener() {

            public void menuCanceled(MenuEvent menuevent)
            {
                checkMenuItemEnabled();
            }

            public void menuDeselected(MenuEvent menuevent)
            {
                checkMenuItemEnabled();
            }

            public void menuSelected(MenuEvent menuevent)
            {
                checkMenuItemEnabled();
            }

            final Notepad this$0;

            
            {
                this$0 = Notepad.this;
                super();
            }
        });
        editMenu_Undo = new JMenuItem("\u64A4\u9500(U)");
        editMenu_Undo.setAccelerator(KeyStroke.getKeyStroke(90, 2));
        editMenu_Undo.addActionListener(this);
        editMenu_Undo.setEnabled(false);
        editMenu_Cut = new JMenuItem("\u526A\u5207(T)");
        editMenu_Cut.setAccelerator(KeyStroke.getKeyStroke(88, 2));
        editMenu_Cut.addActionListener(this);
        editMenu_Copy = new JMenuItem("\u590D\u5236(C)");
        editMenu_Copy.setAccelerator(KeyStroke.getKeyStroke(67, 2));
        editMenu_Copy.addActionListener(this);
        editMenu_Paste = new JMenuItem("\u7C98\u8D34(P)");
        editMenu_Paste.setAccelerator(KeyStroke.getKeyStroke(86, 2));
        editMenu_Paste.addActionListener(this);
        editMenu_Delete = new JMenuItem("\u5220\u9664(D)");
        editMenu_Delete.setAccelerator(KeyStroke.getKeyStroke(127, 0));
        editMenu_Delete.addActionListener(this);
        editMenu_Find = new JMenuItem("\u67E5\u627E(F)...");
        editMenu_Find.setAccelerator(KeyStroke.getKeyStroke(70, 2));
        editMenu_Find.addActionListener(this);
        editMenu_FindNext = new JMenuItem("\u67E5\u627E\u4E0B\u4E00\u4E2A(N)");
        editMenu_FindNext.setAccelerator(KeyStroke.getKeyStroke(114, 0));
        editMenu_FindNext.addActionListener(this);
        editMenu_Replace = new JMenuItem("\u66FF\u6362(R)...", 82);
        editMenu_Replace.setAccelerator(KeyStroke.getKeyStroke(72, 2));
        editMenu_Replace.addActionListener(this);
        editMenu_GoTo = new JMenuItem("\u8F6C\u5230(G)...", 71);
        editMenu_GoTo.setAccelerator(KeyStroke.getKeyStroke(71, 2));
        editMenu_GoTo.addActionListener(this);
        editMenu_SelectAll = new JMenuItem("\u5168\u9009", 65);
        editMenu_SelectAll.setAccelerator(KeyStroke.getKeyStroke(65, 2));
        editMenu_SelectAll.addActionListener(this);
        editMenu_TimeDate = new JMenuItem("\u65F6\u95F4/\u65E5\u671F(D)", 68);
        editMenu_TimeDate.setAccelerator(KeyStroke.getKeyStroke(116, 0));
        editMenu_TimeDate.addActionListener(this);
        formatMenu = new JMenu("\u683C\u5F0F(O)");
        formatMenu.setMnemonic('O');
        formatMenu_LineWrap = new JCheckBoxMenuItem("\u81EA\u52A8\u6362\u884C(W)");
        formatMenu_LineWrap.setMnemonic('W');
        formatMenu_LineWrap.setState(true);
        formatMenu_LineWrap.addActionListener(this);
        formatMenu_Font = new JMenuItem("\u5B57\u4F53(F)...");
        formatMenu_Font.addActionListener(this);
        viewMenu = new JMenu("\u67E5\u770B(V)");
        viewMenu.setMnemonic('V');
        viewMenu_Status = new JCheckBoxMenuItem("\u72B6\u6001\u680F(S)");
        viewMenu_Status.setMnemonic('S');
        viewMenu_Status.setState(true);
        viewMenu_Status.addActionListener(this);
        helpMenu = new JMenu("\u5E2E\u52A9(H)");
        helpMenu.setMnemonic('H');
        helpMenu_HelpTopics = new JMenuItem("\u5E2E\u52A9\u4E3B\u9898(H)");
        helpMenu_HelpTopics.setAccelerator(KeyStroke.getKeyStroke(112, 0));
        helpMenu_HelpTopics.addActionListener(this);
        helpMenu_AboutNotepad = new JMenuItem("\u5173\u4E8E\u8BB0\u4E8B\u672C(A)");
        helpMenu_AboutNotepad.addActionListener(this);
        jmenubar.add(fileMenu);
        fileMenu.add(fileMenu_New);
        fileMenu.add(fileMenu_Open);
        fileMenu.add(fileMenu_Save);
        fileMenu.add(fileMenu_SaveAs);
        fileMenu.addSeparator();
        fileMenu.add(fileMenu_PageSetUp);
        fileMenu.add(fileMenu_Print);
        fileMenu.addSeparator();
        fileMenu.add(fileMenu_Exit);
        jmenubar.add(editMenu);
        editMenu.add(editMenu_Undo);
        editMenu.addSeparator();
        editMenu.add(editMenu_Cut);
        editMenu.add(editMenu_Copy);
        editMenu.add(editMenu_Paste);
        editMenu.add(editMenu_Delete);
        editMenu.addSeparator();
        editMenu.add(editMenu_Find);
        editMenu.add(editMenu_FindNext);
        editMenu.add(editMenu_Replace);
        editMenu.add(editMenu_GoTo);
        editMenu.addSeparator();
        editMenu.add(editMenu_SelectAll);
        editMenu.add(editMenu_TimeDate);
        jmenubar.add(formatMenu);
        formatMenu.add(formatMenu_LineWrap);
        formatMenu.add(formatMenu_Font);
        jmenubar.add(viewMenu);
        viewMenu.add(viewMenu_Status);
        jmenubar.add(helpMenu);
        helpMenu.add(helpMenu_HelpTopics);
        helpMenu.addSeparator();
        helpMenu.add(helpMenu_AboutNotepad);
        setJMenuBar(jmenubar);
        editArea = new JTextArea(20, 50);
        JScrollPane jscrollpane = new JScrollPane(editArea);
        jscrollpane.setVerticalScrollBarPolicy(22);
        add(jscrollpane, "Center");
        editArea.setWrapStyleWord(true);
        editArea.setLineWrap(true);
        oldValue = editArea.getText();
        editArea.getDocument().addUndoableEditListener(undoHandler);
        editArea.getDocument().addDocumentListener(this);
        popupMenu = new JPopupMenu();
        popupMenu_Undo = new JMenuItem("\u64A4\u9500(U)");
        popupMenu_Cut = new JMenuItem("\u526A\u5207(T)");
        popupMenu_Copy = new JMenuItem("\u590D\u5236(C)");
        popupMenu_Paste = new JMenuItem("\u7C98\u5E16(P)");
        popupMenu_Delete = new JMenuItem("\u5220\u9664(D)");
        popupMenu_SelectAll = new JMenuItem("\u5168\u9009(A)");
        popupMenu_Undo.setEnabled(false);
        popupMenu.add(popupMenu_Undo);
        popupMenu.addSeparator();
        popupMenu.add(popupMenu_Cut);
        popupMenu.add(popupMenu_Copy);
        popupMenu.add(popupMenu_Paste);
        popupMenu.add(popupMenu_Delete);
        popupMenu.addSeparator();
        popupMenu.add(popupMenu_SelectAll);
        popupMenu_Undo.addActionListener(this);
        popupMenu_Cut.addActionListener(this);
        popupMenu_Copy.addActionListener(this);
        popupMenu_Paste.addActionListener(this);
        popupMenu_Delete.addActionListener(this);
        popupMenu_SelectAll.addActionListener(this);
        editArea.addMouseListener(new MouseAdapter() {

            public void mousePressed(MouseEvent mouseevent)
            {
                if(mouseevent.isPopupTrigger())
                    popupMenu.show(mouseevent.getComponent(), mouseevent.getX(), mouseevent.getY());
                checkMenuItemEnabled();
                editArea.requestFocus();
            }

            public void mouseReleased(MouseEvent mouseevent)
            {
                if(mouseevent.isPopupTrigger())
                    popupMenu.show(mouseevent.getComponent(), mouseevent.getX(), mouseevent.getY());
                checkMenuItemEnabled();
                editArea.requestFocus();
            }

            final Notepad this$0;

            
            {
                this$0 = Notepad.this;
                super();
            }
        });
        statusLabel = new JLabel("\u3000\u6309F1\u83B7\u53D6\u5E2E\u52A9");
        add(statusLabel, "South");
        setLocation(100, 100);
        setSize(650, 550);
        setVisible(true);
        addWindowListener(new WindowAdapter() {

            public void windowClosing(WindowEvent windowevent)
            {
                exitWindowChoose();
            }

            final Notepad this$0;

            
            {
                this$0 = Notepad.this;
                super();
            }
        });
        checkMenuItemEnabled();
        editArea.requestFocus();
    }

    public void checkMenuItemEnabled()
    {
        String s = editArea.getSelectedText();
        if(s == null)
        {
            editMenu_Cut.setEnabled(false);
            popupMenu_Cut.setEnabled(false);
            editMenu_Copy.setEnabled(false);
            popupMenu_Copy.setEnabled(false);
            editMenu_Delete.setEnabled(false);
            popupMenu_Delete.setEnabled(false);
        } else
        {
            editMenu_Cut.setEnabled(true);
            popupMenu_Cut.setEnabled(true);
            editMenu_Copy.setEnabled(true);
            popupMenu_Copy.setEnabled(true);
            editMenu_Delete.setEnabled(true);
            popupMenu_Delete.setEnabled(true);
        }
        Transferable transferable = clipBoard.getContents(this);
        if(transferable == null)
        {
            editMenu_Paste.setEnabled(false);
            popupMenu_Paste.setEnabled(false);
        } else
        {
            editMenu_Paste.setEnabled(true);
            popupMenu_Paste.setEnabled(true);
        }
    }

    public void exitWindowChoose()
    {
        editArea.requestFocus();
        String s = editArea.getText();
        if(s.equals(oldValue))
        {
            System.exit(0);
        } else
        {
            int i = JOptionPane.showConfirmDialog(this, "\u60A8\u7684\u6587\u4EF6\u5C1A\u672A\u4FDD\u5B58\uFF0C\u662F\u5426\u4FDD\u5B58\uFF1F", "\u9000\u51FA\u63D0\u793A", 1);
            if(i == 0)
            {
                if(isNewFile)
                {
                    Object obj = null;
                    JFileChooser jfilechooser = new JFileChooser();
                    jfilechooser.setFileSelectionMode(0);
                    jfilechooser.setApproveButtonText("\u786E\u5B9A");
                    jfilechooser.setDialogTitle("\u53E6\u5B58\u4E3A");
                    int j = jfilechooser.showSaveDialog(this);
                    if(j == 1)
                    {
                        statusLabel.setText("\u3000\u60A8\u6CA1\u6709\u4FDD\u5B58\u6587\u4EF6");
                        return;
                    }
                    File file = jfilechooser.getSelectedFile();
                    if(file == null || file.getName().equals(""))
                        JOptionPane.showMessageDialog(this, "\u4E0D\u5408\u6CD5\u7684\u6587\u4EF6\u540D", "\u4E0D\u5408\u6CD5\u7684\u6587\u4EF6\u540D", 0);
                    else
                        try
                        {
                            FileWriter filewriter1 = new FileWriter(file);
                            BufferedWriter bufferedwriter1 = new BufferedWriter(filewriter1);
                            bufferedwriter1.write(editArea.getText(), 0, editArea.getText().length());
                            bufferedwriter1.flush();
                            filewriter1.close();
                            isNewFile = false;
                            currentFile = file;
                            oldValue = editArea.getText();
                            setTitle((new StringBuilder()).append(file.getName()).append("  - \u8BB0\u4E8B\u672C").toString());
                            statusLabel.setText((new StringBuilder()).append("\u3000\u5F53\u524D\u6253\u5F00\u6587\u4EF6:").append(file.getAbsoluteFile()).toString());
                        }
                        catch(IOException ioexception1) { }
                } else
                {
                    try
                    {
                        FileWriter filewriter = new FileWriter(currentFile);
                        BufferedWriter bufferedwriter = new BufferedWriter(filewriter);
                        bufferedwriter.write(editArea.getText(), 0, editArea.getText().length());
                        bufferedwriter.flush();
                        filewriter.close();
                    }
                    catch(IOException ioexception) { }
                }
                System.exit(0);
            } else
            if(i == 1)
                System.exit(0);
            else

⌨️ 快捷键说明

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