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

📄 notepad.java

📁 这是一个用JAVA编写的记事本的原码。功能和WINDOWS自带基本一样。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                { 
                } 
                 
                public void insertUpdate( DocumentEvent e ) 
                { 
                    hasSaved = false; 
                } 
                 
                public void removeUpdate( DocumentEvent e ) 
                { 
                    hasSaved = false; 
                } 
            } 
        ); 
        getContentPane().add( new JScrollPane( text ) ); 
    } 

    public void actionPerformed(ActionEvent e)  
    { 
        actions( ( JMenuItem ) e.getSource(), e.getActionCommand() ); 
    } 
     
    private void actions( JMenuItem source, String name ) 
    { 
        for( int i = 0; i < menuItem.length; i ++ ) 
        { 
            if( menuItem[i].getText().equals( name ) ) 
            { 
                switch( i ) 
                { 
                    case 0: 
                        //JOptionPane.showMessageDialog( null, "新建" ); 
                        if( isSaved() ) newFile(); 
                        return; 
                    case 1: 
                        //JOptionPane.showMessageDialog( null, "打开" ); 
                        if( isSaved() ) openFile(); 
                        return; 
                    case 2: 
                        //JOptionPane.showMessageDialog( null, "保存" ); 
                        saveFile(); 
                        return; 
                    case 3: 
                        //JOptionPane.showMessageDialog( null, "另存为" ); 
                        saveAsFile(); 
                        return; 
                    case 4: 
                        //JOptionPane.showMessageDialog( null, "退出" ); 
                        if( isSaved() ) System.exit( 0 ); 
                        return; 
                    case 5: 
                        //JOptionPane.showMessageDialog( null, "撤消" ); 
                        if( undoManager.canUndo() ) undoManager.undo(); 
                        return; 
                    case 6: 
                        //JOptionPane.showMessageDialog( null, "重做" ); 
                        if( undoManager.canRedo() ) undoManager.redo(); 
                        return; 
                    case 7: 
                        //JOptionPane.showMessageDialog( null, "剪切" ); 
                        text.cut(); 
                        return; 
                    case 8: 
                        //JOptionPane.showMessageDialog( null, "复制" ); 
                        text.copy(); 
                        return; 
                    case 9: 
                        //JOptionPane.showMessageDialog( null, "粘贴" ); 
                        text.paste(); 
                        return; 
                    case 10: 
                        //JOptionPane.showMessageDialog( null, "删除" ); 
                        text.replaceSelection( "" ); 
                        return; 
                    case 11: 
                        //JOptionPane.showMessageDialog( null, "查找" ); 
                        if( ! text.getText().equals( "" ) ) 
                        { 
                            FindDialog fDialog =new FindDialog( this, text, findString ); 
                            fDialog.setVisible( true ); 
                        } 
                        return; 
                    case 12: 
                        //JOptionPane.showMessageDialog( null, "查找下一个" ); 
                        if( ! text.getText().equals( "" ) ) 
                        { 
                            FindDialog fNextDialog = new FindDialog( this, text, findString ); 
                            if( findString.toString().equals( "" ) )  
                            { 
                                fNextDialog.setVisible( true ); 
                            } 
                            else 
                            { 
                                fNextDialog.find(); 
                            } 
                        } 
                        return; 
                    case 13: 
                        //JOptionPane.showMessageDialog( null, "替换" ); 
                        if( ! text.getText().equals( "" ) ) 
                        { 
                            ReplaceDialog rDialog = new ReplaceDialog( this, text, findString, replaceString ); 
                            rDialog.setVisible( true ); 
                        } 
                        return; 
                    case 14: 
                        //JOptionPane.showMessageDialog( null, "全选" ); 
                        text.selectAll(); 
                        return; 
                    case 15: 
                        //JOptionPane.showMessageDialog( null, "自动换行" ); 
                        JCheckBoxMenuItem item = (JCheckBoxMenuItem)source; 
                        text.setLineWrap( item.isSelected() ); 
                        return; 
                    case 16: 
                        //JOptionPane.showMessageDialog( null, "字体" ); 
                        new FontDialog( this, text ); 
                        return; 
                    case 17: 
                        JOptionPane.showMessageDialog( this, "叶少伟", 
                            "关于记事本", JOptionPane.CLOSED_OPTION ); 
                        return; 
                }                 
            } 
        } 
         

    } 

    private void newFile() 
    { 
        text.setText( "" ); 
        undoManager.discardAllEdits(); 
        hasSaved = true; 
        setTitle( "无标题-记事本" ); 
        openedFileName = ""; 
        openedFilePath = ""; 
    } 
     
    private boolean isSaved() 
    { 
        if( hasSaved ) 
        { 
            return true; 
        } 
        else 
        { 
            int n; 
            JOptionPane jop = new JOptionPane(); 
            jop.setFont( font ); 
            n = jop.showConfirmDialog( this, "文件的文字已经改变\n想保存文件吗?", "记事本",  
                JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE ); 
            if( n == JOptionPane.YES_OPTION ) 
            { 
                //JOptionPane.showMessageDialog( null, "yes" ); 
                if( !saveFile() ) return false; 
                return true; 
            } 
            else if( n == JOptionPane.NO_OPTION ) 
            { 
                //JOptionPane.showMessageDialog( null, "no" ); 
                return true; 
            } 
            else 
            { 
                //JOptionPane.showMessageDialog( null, "ok" ); 
                return false; 
            } 
        } 
    } 
         
    private boolean saveAsFile() 
    { 
        JFileChooser fileChooser = new JFileChooser(); 
        int result = fileChooser.showSaveDialog( this ); 
        if ( result == JFileChooser.CANCEL_OPTION ) 
            return false; 
        File fileName = fileChooser.getSelectedFile(); 
        try 
        { 
            FileWriter out = new FileWriter( fileName.getAbsolutePath() ); 
            out.write( text.getText() ); 
            out.close(); 
            hasSaved = true; 
            openedFilePath = fileName.getAbsolutePath(); 
            openedFileName = fileName.getName(); 
            setTitle( openedFileName + "-记事本" ); 
        }catch( Exception e ) 
        { 
            JOptionPane.showMessageDialog( this, fileName.getName() + "文件不存在!\n请检查所给的文件名是否正确!", 
                "无效的文件名", JOptionPane.ERROR_MESSAGE ); 
            return false; 
        } 
        return true; 
    } 
     
    private boolean saveFile() 
    { 
        if( openedFileName.equals( "" ) && openedFilePath.equals( "" ) ) 
        { 
            return saveAsFile(); 
        } 
        else 
        { 
            try 
            { 
                FileWriter out = new FileWriter( openedFilePath ); 
                out.write( text.getText() ); 
                out.close(); 
                hasSaved = true; 
                setTitle( openedFileName + "-记事本" ); 
            }catch( Exception e ) 
            { 
                JOptionPane.showMessageDialog( this, openedFileName + "文件不存在!\n请检查所给的文件名是否正确!", 
                    "无效的文件名", JOptionPane.ERROR_MESSAGE ); 
                return false; 
            } 
            return true; 
        } 
    } 
     
    private boolean openFile() 
    { 
        JFileChooser fileChooser = new JFileChooser(); 
        int result = fileChooser.showOpenDialog( this ); 
        if ( result == JFileChooser.CANCEL_OPTION ) 
            return false; 
        File fileName = fileChooser.getSelectedFile(); 
        try 
        { 
            char buf[] = new char[1024]; 
            int len = 0; 
            StringBuffer str = new StringBuffer(); 
            FileReader in = new FileReader( fileName.getAbsolutePath() ); 
            while( (len = in.read( buf ) ) != -1 ) 
            { 
                str.append( buf, 0, len ); 
            } 
            in.close(); 
            text.setText( str.toString() ); 
            hasSaved = true; 
            openedFilePath = fileName.getAbsolutePath(); 
            openedFileName = fileName.getName(); 
            setTitle( openedFileName + "-记事本" ); 
        }catch( Exception e ) 
        { 
            JOptionPane.showMessageDialog( this, fileName.getName() + "文件不存在!\n请检查所给的文件名是否正确!", 
                "无效的文件名", JOptionPane.ERROR_MESSAGE ); 
            return false; 
        } 
        return true; 
    } 
} 

⌨️ 快捷键说明

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