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

📄 realeditorframe.java

📁 这个小软件( RealEditor )是同学一起编写的
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                } 
                
            }
        };
        receiveThread.start();
    }
    
	private synchronized void open( final File file ) {
        
        Thread thread = new Thread() {
            public void run() {
                
                String filePath = file.getAbsolutePath();
                String fileExtention;
                if ( filePath.lastIndexOf( "." ) != -1 ) {
                    fileExtention = filePath.substring( filePath.lastIndexOf( "." ) );
                } else {
                    fileExtention = " ";
                }
                //JScrollPane newScrollPane = null;
                //selectedFile = jfc.getSelectedFile();
                //filePath = selectedFile.getAbsolutePath();
                
                boolean flag = false;
                
                for ( NewTextPane textPane : textPanes ) {
                    if ( file != null ) {
                        if ( file.equals( textPane.getPath() ) ) {
                            flag = true;
                            tabbedPane.setSelectedIndex( textPanes.indexOf( textPane ) );
                            break;
                        }
                    }
                }
                
                if ( flag ) {
                    return;
                }
                
                if ( fileExtention.compareToIgnoreCase( ".sz" ) == 0 ) {
                    try {
                        ObjectInputStream ois =
                            new ObjectInputStream( 
                                new BufferedInputStream( 
                                    new FileInputStream( filePath ) ) );
                        
                        NewTextPane newTextPane = ( NewTextPane )ois.readObject();
                        newTextPane.setPath( new File( filePath ) );
                        
                        newTextPane.setUndoManager( new UndoManager() );
                        newTextPane.addMouseListener( new PopupL() );
                        newTextPane.addCaretListener( new CaretL() );
                        DefaultStyledDocument newDoc = newTextPane.getDoc();
                        newDoc.addUndoableEditListener( new UndoableEditL() );
                        newDoc.addDocumentListener( new DocL() );
                        textPanes.add( newTextPane );
                        
                        ois.close();
                        tabbedPane.addTab( file.getName(), new JScrollPane( newTextPane ) );
                        tabbedPane.setToolTipTextAt( textPanes.size() - 1, TimeFormat.getCompleteTime() );
                        tabbedPane.setSelectedIndex( tabbedPane.getTabCount() - 1 );
                        newTextPane.setCaretPosition( 0 );
                        newTextPane.setSaved( true );
                    } catch ( Exception ex ) {
                        ex.printStackTrace( System.err );
                        JOptionPane.showMessageDialog( 
                            
                            RealEditorFrame.this, "Can Not Open The File !", 
                            "Error Ocurred", JOptionPane.ERROR_MESSAGE ); 
                    }
                    
                } else if ( fileExtention.compareToIgnoreCase( ".jpg" ) == 0 ||                          
                            fileExtention.compareToIgnoreCase( ".png" ) == 0 || 
                            fileExtention.compareToIgnoreCase( ".gif" ) == 0 ||
                            fileExtention.compareToIgnoreCase( ".jpeg" ) == 0 ) {
                    
                    if ( tabbedPane.getSelectedIndex() != -1 ) {
                        Icon imgToInsert = new ImageIcon( filePath );
                        getCurrentTextPane().insertIcon( imgToInsert );
                    } else {
                    	Toolkit.getDefaultToolkit().beep();
                    }
                    
                    
                } else if ( fileExtention.compareToIgnoreCase( ".mp3" ) == 0 ) {
                	try {
						Runtime.getRuntime().exec( 
								"C:/Program Files/Windows Media Player/mplayer2.exe " +
								file.getAbsolutePath() );
					} catch (IOException e) {
						Toolkit.getDefaultToolkit().beep();
					}
                } else if ( fileExtention.compareToIgnoreCase( ".c" ) == 0 ||
                		fileExtention.compareToIgnoreCase( ".txt" ) == 0 ||
                		fileExtention.compareToIgnoreCase( ".ini" ) == 0 ||
                		fileExtention.compareToIgnoreCase( ".java" ) == 0 ||
                		fileExtention.compareToIgnoreCase( ".log" ) == 0 ||
                		fileExtention.compareToIgnoreCase( ".xml" ) == 0 ||
                		fileExtention.compareToIgnoreCase( ".jsp" ) == 0 ||
                		fileExtention.compareToIgnoreCase( ".asp" ) == 0 ||
                		fileExtention.compareToIgnoreCase( ".cpp" ) == 0 ||
                		fileExtention.compareToIgnoreCase( ".ini" ) == 0 ||
                		fileExtention.compareToIgnoreCase( ".htm" ) == 0 ||
                		fileExtention.compareToIgnoreCase( ".html" ) == 0 ) {
                    NewTextPane newTextPane = createTextPane();
                    newTextPane.setPath( new File( filePath ) );
                    try {
                        BufferedReader br = 
                            new BufferedReader( 
                                new FileReader( file ) );
                        StringBuffer str = 
                        	new StringBuffer( ( int )file.length() );
                        int asci;
                        while ( ( asci = br.read() ) != -1 ) {
                            str.append( ( char )asci );
                        }
                        newTextPane.setText( new String( str ) );
                        br.close();
                        tabbedPane.addTab( file.getName(), new JScrollPane( newTextPane ) );
                        tabbedPane.setToolTipTextAt( textPanes.size() - 1, TimeFormat.getCompleteTime() );
                        tabbedPane.setSelectedIndex( tabbedPane.getTabCount() - 1 );
                        newTextPane.setCaretPosition( 0 );
                        newTextPane.setSaved( true );
                    } catch ( IOException ex ) {
                        JOptionPane.showMessageDialog( 
                            RealEditorFrame.this, "Can Not Open The File !", 
                            "Error Ocurred", JOptionPane.ERROR_MESSAGE ); 
                    }
                } else {
                	Toolkit.getDefaultToolkit().beep();
                }
                
            }
        };
        
        thread.start();
        
        
	}
    
    private void setButtonForeground( JButton button, Color color ) {
        button.setForeground( color );
    }
    
    private void setComponentsEnabled( boolean enabled ) {
        
        if ( isEditPaneShowed ) {
            saveButton.setEnabled( enabled );
            saveAllButton.setEnabled( enabled );
            cutButton.setEnabled( enabled );
            copyButton.setEnabled( enabled );
            pasteButton.setEnabled( enabled );
            undoButton.setEnabled( enabled );
            redoButton.setEnabled( enabled );
            insertImgButton.setEnabled( enabled );
            findButton.setEnabled( enabled );
            replaceButton.setEnabled( enabled );
            
            fontsComboBox.setEnabled( enabled );
            fontSizeComboBox.setEnabled( enabled );
            
            boldButton.setEnabled( enabled );
            italicButton.setEnabled( enabled  );
            underLineButton.setEnabled( enabled  );
            
            saveMenuItem.setEnabled( enabled );
            saveAllMenuItem.setEnabled( enabled );
            printMenuItem.setEnabled( enabled );
            printPreviewMenuItem.setEnabled( enabled );
            printSetupMenuItem.setEnabled( enabled );
            undoMenuItem.setEnabled( enabled );
            redoMenuItem.setEnabled( enabled );
            cutMenuItem.setEnabled( enabled );
            copyMenuItem.setEnabled( enabled );
            pasteMenuItem.setEnabled( enabled );
            selectAllMenuItem.setEnabled( enabled );
            insertImgMenuItem.setEnabled( enabled );
            findMenuItem.setEnabled( enabled );
            replaceMenuItem.setEnabled( enabled );
            lineWrapMenuItem.setEnabled( enabled );
            fontMenu.setEnabled( enabled );
            backgroundColorMenuItem.setEnabled( enabled );
        } else {
            saveButton.setEnabled( false );
            saveAllButton.setEnabled( false );
            cutButton.setEnabled( false );
            copyButton.setEnabled( false );
            pasteButton.setEnabled( false );
            undoButton.setEnabled( false );
            redoButton.setEnabled( false );
            insertImgButton.setEnabled( false );
            findButton.setEnabled( false );
            replaceButton.setEnabled( false );
            
            fontsComboBox.setEnabled( false );
            fontSizeComboBox.setEnabled( false );
            
            boldButton.setEnabled( false );
            italicButton.setEnabled( false  );
            underLineButton.setEnabled( false  );
            
            saveMenuItem.setEnabled( false );
            saveAllMenuItem.setEnabled( false );
            printMenuItem.setEnabled( false );
            printPreviewMenuItem.setEnabled( false );
            printSetupMenuItem.setEnabled( false );
            undoMenuItem.setEnabled( false );
            redoMenuItem.setEnabled( false );
            cutMenuItem.setEnabled( false );
            copyMenuItem.setEnabled( false );
            pasteMenuItem.setEnabled( false );
            selectAllMenuItem.setEnabled( false );
            insertImgMenuItem.setEnabled( false );
            findMenuItem.setEnabled( false );
            replaceMenuItem.setEnabled( false );
            lineWrapMenuItem.setEnabled( false );
            fontMenu.setEnabled( false );
            backgroundColorMenuItem.setEnabled( false );
        }
        
        
        if ( isEditPaneShowed ) {
            newButton.setEnabled( isEditPaneShowed );
            openButton.setEnabled( isEditPaneShowed );
            newMenuItem.setEnabled( isEditPaneShowed );
            openMenuItem.setEnabled( isEditPaneShowed );
            ipTextField.setEnabled( enabled );
            sendButton.setEnabled( enabled );
        } else {
            newButton.setEnabled( false );
            openButton.setEnabled( false );
            newMenuItem.setEnabled( false );
            openMenuItem.setEnabled( false );
            ipTextField.setEnabled( true );
            sendButton.setEnabled( true );
        }
        
        
        
        
        if ( boldButton.isEnabled() ) {
            setButtonForeground( boldButton, Color.black );
        } else {
            setButtonForeground( boldButton, Color.lightGray );
        }
        
        if ( italicButton.isEnabled() ) {
            setButtonForeground( italicButton, Color.black );
        } else {
            setButtonForeground( italicButton, Color.lightGray );
        }
        
        if ( underLineButton.isEnabled() ) {
            setButtonForeground( underLineButton, Color.black );
        } else {
            setButtonForeground( underLineButton, Color.lightGray );
        }
        
        
        
        
    }
	
	private void save( final NewTextPane textPane ) {
        
        if ( tabbedPane.getSelectedIndex() != -1 ) {
            final JFileChooser jfc = new JFileChooser();
            
            final ExtensionFileFilter documentFilter = new ExtensionFileFilter();
            documentFilter.addExtension( "sz" );
            documentFilter.setDescription( "Document Files( .sz )" );
            
            //jfc.setFileFilter( imageFilter );
            jfc.setFileFilter( documentFilter );
            
            jfc.setFileView( 
                    new FileIconView( 
                            documentFilter, documentFileViewImageIcon ) );
            
            String filePath = "";
            jfc.setDialogTitle( 
                "Save " + tabbedPane.getTitleAt( tabbedPane.getSelectedIndex() ) );
            
            int choice = JFileChooser.CANCEL_OPTION;
                            
            if ( textPane.getPath() == null ) {
                choice = jfc.showSaveDialog( RealEditorFrame.this );
                
                if ( choice == JFileChooser.APPROVE_OPTION ) {
                    filePath = 
                        jfc.getSelectedFile().getAbsolutePath().contains( "." ) ?
                            jfc.getSelectedFile().getAbsolutePath() : 
                                jfc.getSelectedFile().getAbsolutePath() + ".sz";
                    File file = new File( filePath );
                    String title = file.getName();
                    tabbedPane.setTitleAt( tabbedPane.getSelectedIndex(), title );
                } else if ( choice == JFileChooser.CANCEL_OPTION ) {
                    return;
                }
                
            } else {
                filePath = textPane.getPath().toString();
                
            }
            
                                
                if ( filePath.lastIndexOf( "." ) == -1  )
                    return;
                
                String fileExtention = filePath.substring( filePath.lastIndexOf( "." ) );
                
                if ( textPane.getIsStyledModified() && 
                        !( fileExtention.compareToIgnoreCase( ".sz" ) == 0 ) ) {
                    
                    Object[] option = {
                            "Yes", "No", "Cannel"
                        };
                        int n = JOptionPane.showOptionDialog( 
                                    RealEditorFrame.this, 
                                    "Some style in this document is not compatible with its format? " +
                                    "Do you want to continue to save this document in or

⌨️ 快捷键说明

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