📄 frametesttool.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 + -