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

📄 frametesttool.java

📁 简单的java文本编辑器
💻 JAVA
字号:
/************************************************************************************** 类名: FrameTestTool                                                               *                                                                    * 功能: 此类的主要功能为作为主类(编辑器类)的工具类,此类作为一个方法封装类,其中*    的所有实现方法都是提供给主类(编辑器类)及其相关联类所使用,此类实现了*        FrameTestTools接口*                                                                **************************************************************************************/package edit.com;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.KeyStroke;import java.awt.event.KeyEvent;import java.awt.event.InputEvent;import javax.swing.JOptionPane;import java.io.File;import javax.swing.JFileChooser;import java.awt.Component;import javax.swing.JTextArea;import java.io.IOException;import java.io.PrintWriter;import java.io.FileWriter;import java.io.BufferedReader;import java.io.FileReader;import java.awt.print.PrinterException;import java.awt.Color;import java.awt.event.ActionListener;class FrameTestTool extends NewTool                    implements FrameTestTools {    public void addToFileMenu( JMenu aMenu ,                               JMenuItem[] fileItems,                               JMenuBar aMenubar ) {        for( int i = 0 ; i < fileItems.length ; i++ )        {            aMenu.add( fileItems[i] );            if( ( i == 2 ) || ( i == 4 ) || ( i == 5 ) )            {                aMenu.addSeparator();            }        }        fileItems[0].setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_N ,                                                             InputEvent.CTRL_MASK ) );        fileItems[1].setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_O ,                                                             InputEvent.CTRL_MASK ) );        fileItems[2].setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_C ,                                                             InputEvent.CTRL_MASK ) );        aMenubar.add( aMenu );    }    public void addToEditMenu( JMenu aMenu ,                               JMenuItem[] editItems,                               JMenuBar aMenubar ) {        for( int i = 0 ; i < editItems.length ; i++ )        {            aMenu.add( editItems[i] );            if( ( i == 0 ) || ( i == 4 ) || ( i == 7 ) )            {                aMenu.addSeparator();            }        }        editItems[0].setEnabled( false );        editItems[5].setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_I , InputEvent.CTRL_MASK ) );        editItems[6].setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_R , InputEvent.CTRL_MASK ) );        aMenubar.add( aMenu );    }    public void addToViewMenu( JMenu aMenu ,                               JMenuItem[] viewItems,                               JMenuBar aMenubar ) {         for( int i = 0 ; i < viewItems.length ; i++ )        {            aMenu.add( viewItems[i] );            if( ( i == 1 ) )            {                aMenu.addSeparator();            }        }        viewItems[0].setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_F , InputEvent.CTRL_MASK ) );        viewItems[1].setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_R , InputEvent.CTRL_MASK ) );        aMenubar.add( aMenu );    }    public void addToHelpMenu( JMenu aMenu ,                               JMenuItem helpItem,                               JMenuBar aMenubar ) {        aMenu.add( helpItem );        aMenubar.add( aMenu );    }    public boolean saveDialog() {        int option = 0;        option = JOptionPane.showConfirmDialog( null , "save the file?" ,                        "Save Dialog" , JOptionPane.YES_NO_CANCEL_OPTION );        switch( option )        {            case JOptionPane.YES_OPTION:            {                return true;            }            case JOptionPane.NO_OPTION:            {                return false;            }            case JOptionPane.CANCEL_OPTION:            {                return false;            }        }        return true;    }    public File showSaveFileDialog( FrameTestState state , Component c ) {        int result = 0;        JFileChooser fileChooser = new JFileChooser();        fileChooser.setCurrentDirectory( new File( "." ) );        fileChooser.setMultiSelectionEnabled( false );        result = fileChooser.showSaveDialog( c );        if( result == JFileChooser.APPROVE_OPTION )        {            return fileChooser.getSelectedFile();        }        else        {            return null;        }    }    public File showOpenFileDialog( FrameTestState state, Component c ) {        int result = 0;        JFileChooser fileChooser = new JFileChooser();        fileChooser.setCurrentDirectory( new File( "." ) );        fileChooser.setMultiSelectionEnabled( false );        result = fileChooser.showOpenDialog( c );        if( result == JFileChooser.APPROVE_OPTION )        {            return fileChooser.getSelectedFile();        }        else        {            return null;        }    }    public boolean writeToFile( File file , JTextArea editArea ) {        int pos = 0;        try{                PrintWriter fileWriter = new PrintWriter( new FileWriter( file ) );                String str = editArea.getText();                while( true )                {                    pos = str.indexOf( '\12' , pos );                    if( pos == -1 )                    {                        break;                    }                    str = str.substring(0, pos) + '\15' + str.substring(pos);                    pos = pos + 2;                }                fileWriter.print( str );                fileWriter.close();            }catch( IOException i )             {                 return false;             }        return true;    }    public void newFile( EditArea editArea ,                         JMenuItem[] editItems,                         FrameTestState state,                         Component c ) {        if( saveAs( state , c , editArea ) )        {            editArea.setText( "" );            editArea.setIsEditFalse();            editItems[0].setEnabled( false );            state.getUndoManager().discardAllEdits();        }    }    public boolean saveFile( EditArea editArea ,                             FrameTestState state,                             Component c) {        if( editArea.getIsEditable() )        {            if( state.getFile() == null )            {                if( state.setFile( showSaveFileDialog( state , c ) ) != null )                {                    if( writeToFile( state.getFile(), editArea ) )                    {                        return true;                    }                    else                    {                        JOptionPane.showMessageDialog( c , "error Happened!" ,                                "error" , JOptionPane.ERROR_MESSAGE );                        return false;                    }                }            }            else            {                if( writeToFile( state.getFile(), editArea ) )                {                    return true;                }                else                {                    JOptionPane.showMessageDialog( c , "error Happened!" ,                            "error" , JOptionPane.ERROR_MESSAGE );                    return false;                }            }        }        else        {            JOptionPane.showMessageDialog( c , "empty file invalid" ,                                "error" , JOptionPane.ERROR_MESSAGE );            return false;        }        return false;    }    public boolean saveAs( FrameTestState state,                           Component c,                           EditArea editArea ) {        if( saveDialog() )        {            if( state.setFile( showSaveFileDialog( state, c ) ) != null )            {                if( writeToFile( state.getFile(), editArea ) )                {                    return true;                }                else                {                    JOptionPane.showMessageDialog( c , "error Happened!" ,                            "error" , JOptionPane.ERROR_MESSAGE );                    return false;                }            }        }        return true;    }    public void openFile( EditArea editArea ,                         JMenuItem[] editItems,                         FrameTestState state,                         Component c ) {        File openFile;        StringBuffer strBuffer = new StringBuffer();        BufferedReader buffer;        String str;        saveAs( state , c , editArea );        if ( ( openFile = showOpenFileDialog( state, c ) ) != null )        {            try{                    buffer = new BufferedReader( new FileReader( openFile ) );                       str = buffer.readLine();                       while( str != null )                       {                           strBuffer.append( str + '\12' );                           str = buffer.readLine();                       }                       buffer.close();               }catch( IOException i )                       {}             editArea.setText( strBuffer.toString() );             editItems[0].setEnabled( false );             state.getUndoManager().discardAllEdits();             editArea.setIsEditTrue();         }   }   public void closeFile( EditArea editArea ,                           JMenuItem[] editItems,                           FrameTestState state,                           Component c ) {        saveAs( state , c , editArea );        editArea.setText( "" );        editArea.setIsEditFalse();        editItems[0].setEnabled( false );    }    public void setPrint( EditArea editArea , Component c ) {        editArea.setString( editArea.getText() );        editArea.setTextFont( editArea.getFont() );        try{                editArea.printArea();        }catch( PrinterException p ) {                 JOptionPane.showMessageDialog( c , "print error Happened!" ,                            "error" , JOptionPane.ERROR_MESSAGE );        }    }    public void sysExit( FrameTestState state ,                         Component c ,                         EditArea editArea ) {        saveAs( state , c , editArea );		System.exit( 0 );    }    public void findText( FrameTestState state ,                          EditArea editArea,                          Find findBox ) {        state.setFindSet( findBox.getFindSet() );        if ( ( state.getFindSet().getcartPoint() ) > -1 &&             ( state.getFindSet().getLength() > -1 ) ) {            editArea.setSelectionColor( Color.red );            editArea.select( state.getFindSet().getcartPoint() ,                state.getFindSet().getLength() + state.getFindSet().getcartPoint() );        } else {            editArea.select( 0, 0 );        }    }    public void replaceText( FrameTestState state ,                             EditArea editArea,                             Replace replaceBox ) {        state.setReplaceSet( replaceBox.getSingleSet() );        if ( ( state.getReplaceSet().getStart() ) > -1 &&             ( state.getReplaceSet().getEnd() > -1 ) ) {            editArea.setSelectionColor( Color.red );            editArea.select( state.getReplaceSet().getStart() ,                             state.getReplaceSet().getEnd() );            editArea.replaceSelection( state.getReplaceSet().getText() );        }    }    public void replaceAllText( EditArea editArea,                                Replace replaceBox ) {        String replaceAll = replaceBox.getReplaceAll();        editArea.setText( replaceAll );    }     public JMenuItem[] addItemToMenu( String[] itemText ) {         JMenuItem[] items = new JMenuItem[itemText.length];         for( int i = 0 ; i < itemText.length ; i++ ) {            char[] mnemonic = itemText[i].toCharArray();            items[i] = new JMenuItem( itemText[i],                                      new Integer( mnemonic[0] ).intValue() );         }         return items;     }     public void addListenerToItems( JMenuItem[] items,                                    ActionListener listener ) {        for ( int i = 0 ; i < items.length ; i++ ) {            items[i].addActionListener( listener );        }    }}

⌨️ 快捷键说明

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