📄 realeditorframe.java
字号:
}
}
};
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 + -