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

📄 texteditorframe.java~15~

📁 《JBUILDER精髓》各章的源代码可以直接调入编程开发环境里运行无须更改
💻 JAVA~15~
字号:
package texteditor;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.text.Document;import javax.swing.event.*;import java.io.*;import javax.swing.undo.*;import java.awt.datatransfer.*;import com.borland.dbswing.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2006</p> * <p>Company: </p> * @author not attributable * @version 1.0 */public class TextEditorFrame extends JFrame {Document document1;JFileChooser jFileChooser1 = new JFileChooser();final UndoManager edit= new UndoManager();Clipboard sysClipboard=Toolkit.getDefaultToolkit().getSystemClipboard();boolean saveNeeded;String currentFileName;JPanel contentPane;JMenuBar jMenuBar1 = new JMenuBar();JMenu jMenuFile = new JMenu();JMenu jMenuHelp = new JMenu();ImageIcon image1;ImageIcon image2;ImageIcon image3;JLabel statusBar = new JLabel();BorderLayout borderLayout1 = new BorderLayout();JMenuItem jMenuFileExit = new JMenuItem();JMenuItem jMenuFileSaveas = new JMenuItem();JMenuItem jMenuFileSave = new JMenuItem();JMenuItem jMenuFileOpen = new JMenuItem();JMenuItem jMenuFileNew = new JMenuItem();JMenu jMenuEdit = new JMenu();JMenuItem jMenuEditBColor = new JMenuItem();JMenuItem jMenuEditColor = new JMenuItem();JMenuItem jMenuEditPaste = new JMenuItem();JMenuItem jMenuEditCut = new JMenuItem();JMenuItem jMenuEditCopy = new JMenuItem();JMenuItem jMenuEditSelAll = new JMenuItem();JMenuItem jMenuEditRedo = new JMenuItem();JMenuItem jMenuEditUndo = new JMenuItem();JScrollPane TextScrollPane = new JScrollPane();JTextArea jTextArea1 = new JTextArea();  JRadioButtonMenuItem jRadioButtonMenuItem1 = new JRadioButtonMenuItem();//Construct the framepublic TextEditorFrame() {enableEvents(AWTEvent.WINDOW_EVENT_MASK);try {jbInit();}catch(Exception e) {e.printStackTrace();}}//Component initializationprivate void jbInit() throws Exception {document1 = jTextArea1.getDocument();    //image1 = new ImageIcon(texteditor.TextEditorFrame.class.getResource("openFile.png"));    //image2 = new ImageIcon(texteditor.TextEditorFrame.class.getResource("closeFile.png"));    //image3 = new ImageIcon(texteditor.TextEditorFrame.class.getResource("help.png"));contentPane = (JPanel) this.getContentPane();contentPane.setLayout(borderLayout1);this.setSize(new Dimension(400, 300));this.setTitle("Frame Title");statusBar.setText(" ");jMenuFile.setText("File");jMenuHelp.setText("Help");jMenuFileExit.setText("Exit");jMenuFileExit.addActionListener(new TextEditorFrame_jMenuFileExit_actionAdapter(this));jMenuFileNew.setText("New");jMenuFileNew.addActionListener(new TextEditorFrame_jMenuFileNew_actionAdapter(this));jMenuFileOpen.setText("Open");jMenuFileOpen.addActionListener(new TextEditorFrame_jMenuFileOpen_actionAdapter(this));jMenuFileSave.setText("Save");jMenuFileSave.addActionListener(new TextEditorFrame_jMenuFileSave_actionAdapter(this));jMenuFileSaveas.setText("Save As");jMenuFileSaveas.addActionListener(new TextEditorFrame_jMenuFileSaveas_actionAdapter(this));jMenuEdit.setText("Edit");jMenuEdit.addFocusListener(new TextEditorFrame_jMenuEdit_focusAdapter(this));jMenuEditUndo.setText("Undo");jMenuEditUndo.addActionListener(new TextEditorFrame_jMenuEditUndo_actionAdapter(this));jMenuEditRedo.setText("Redo");jMenuEditRedo.addActionListener(new TextEditorFrame_jMenuEditRedo_actionAdapter(this));jMenuEditSelAll.setText("Select All");jMenuEditCopy.setText("Copy");jMenuEditCopy.addActionListener(new TextEditorFrame_jMenuEditCopy_actionAdapter(this));jMenuEditCut.setText("Cut");jMenuEditCut.addActionListener(new TextEditorFrame_jMenuEditCut_actionAdapter(this));jMenuEditPaste.setText("Paste");jMenuEditPaste.addActionListener(new TextEditorFrame_jMenuEditPaste_actionAdapter(this));jMenuEditColor.setText("Foreground Color");jMenuEditColor.addActionListener(new TextEditorFrame_jMenuEditColor_actionAdapter(this));jMenuEditBColor.setText("Background Color");jMenuEditBColor.addActionListener(new TextEditorFrame_jMenuEditBColor_actionAdapter(this));document1.addDocumentListener(new TextEditorFrame_document1_documentAdapter(this));document1.addUndoableEditListener(new TextEditorFrame_document1_undoableEditAdapter(this));jTextArea1.setToolTipText("");jTextArea1.setText("");jTextArea1.setLineWrap(true);jRadioButtonMenuItem1.setText("About");jMenuBar1.add(jMenuFile);jMenuBar1.add(jMenuEdit);jMenuBar1.add(jMenuHelp);this.setJMenuBar(jMenuBar1);contentPane.add(statusBar, BorderLayout.SOUTH);contentPane.add(TextScrollPane, BorderLayout.CENTER);TextScrollPane.getViewport().add(jTextArea1, null);jMenuFile.add(jMenuFileNew);jMenuFile.add(jMenuFileOpen);jMenuFile.add(jMenuFileSave);jMenuFile.add(jMenuFileSaveas);jMenuFile.addSeparator();jMenuFile.add(jMenuFileExit);jMenuEdit.add(jMenuEditUndo);jMenuEdit.add(jMenuEditRedo);jMenuEdit.addSeparator();jMenuEdit.add(jMenuEditSelAll);jMenuEdit.add(jMenuEditCopy);jMenuEdit.add(jMenuEditCut);jMenuEdit.add(jMenuEditPaste);jMenuEdit.addSeparator();jMenuEdit.add(jMenuEditColor);jMenuEdit.add(jMenuEditBColor);    jMenuHelp.add(jRadioButtonMenuItem1);}//File | Exit action performedvoid openFile(){if (!okToAbandon()) {return;}if(JFileChooser.APPROVE_OPTION== jFileChooser1.showOpenDialog(this)) {openSelectedFile(jFileChooser1.getSelectedFile().getPath());}this.repaint();}void openSelectedFile(String fileName){try{File file = new File(fileName);int fileSize = (int)file.length();int charsReaded = 0;FileReader in = new FileReader(file);char[] data = new char[fileSize];while(in.ready()) {charsReaded += in.read(data, charsReaded, fileSize - charsReaded);}in.close();jTextArea1.setText(new String(data, 0, charsReaded));this.currentFileName = fileName;this.saveNeeded = false;statusBar.setText("打开 "+fileName);updateTitle();}catch (IOException e){statusBar.setText("Error opening "+fileName);}}boolean okToAbandon(){if(!saveNeeded){return true;}int value=JOptionPane.showConfirmDialog(this,"保存文件吗?","文本编辑",JOptionPane.YES_NO_CANCEL_OPTION );switch(value){case JOptionPane.YES_OPTION :return saveFile();case JOptionPane.NO_OPTION : return true;case JOptionPane.CANCEL_OPTION : default: return false;}}void updateTitle(){String title;if (currentFileName == null){title="未命名文件";}else{title=currentFileName;}if (saveNeeded==true){title="*"+title;}title="文本编辑器-"+title;this.setTitle(title);}boolean saveFile(){if (currentFileName == null){return saveAsFile();}try{File file = new File (currentFileName);FileWriter out = new FileWriter(file);String text = jTextArea1.getText();out.write(text);out.close();this.saveNeeded = false;updateTitle();return true;}catch (IOException e){statusBar.setText("存储"+currentFileName+"出错") ;}return false;}boolean saveAsFile(){this.repaint() ;if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {currentFileName = jFileChooser1.getSelectedFile() .getPath() ;this.repaint() ;return saveFile();}else{this.repaint() ;return false;}}public void jMenuFileExit_actionPerformed(ActionEvent e) {if(!okToAbandon()){return;}System.exit(0);}//Help | About action performedpublic void jMenuHelpAbout_actionPerformed(ActionEvent e) {TextEditorFrame_AboutBox dlg = new TextEditorFrame_AboutBox(this);Dimension dlgSize = dlg.getPreferredSize();Dimension frmSize = getSize();Point loc = getLocation();dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);dlg.setModal(true);dlg.pack();dlg.show();}//Overridden so we can exit when window is closedprotected void processWindowEvent(WindowEvent e) {super.processWindowEvent(e);if (e.getID() == WindowEvent.WINDOW_CLOSING) {jMenuFileExit_actionPerformed(null);}}void jMenuFileNew_actionPerformed(ActionEvent e) {if(okToAbandon()){jTextArea1.setText("");currentFileName = null;saveNeeded = false;updateTitle();}}void jMenuFileOpen_actionPerformed(ActionEvent e) {openFile();}void jMenuFileSave_actionPerformed(ActionEvent e) {saveFile();}void jMenuFileSaveas_actionPerformed(ActionEvent e) {saveAsFile();}void jMenuEditCopy_actionPerformed(ActionEvent e) {String selText=jTextArea1.getSelectedText() ;if(selText !=null){StringSelection selection=new StringSelection(selText);sysClipboard.setContents(selection,null) ;}}void jMenuEditCut_actionPerformed(ActionEvent e) {String selText=jTextArea1.getSelectedText() ;if(selText !=null){StringSelection selection=new StringSelection(selText);sysClipboard.setContents(selection,null) ;jTextArea1.replaceSelection("") ;}}void jMenuEditPaste_actionPerformed(ActionEvent e) {Transferable content=sysClipboard.getContents(this) ;if(content==null) return;try{String text=(String)(content.getTransferData(DataFlavor.stringFlavor ) );jTextArea1.replaceSelection(text) ;}catch(Exception ex){}}void jMenuEditColor_actionPerformed(ActionEvent e) {Color color = JColorChooser.showDialog(this,"Foreground Color",jTextArea1.getForeground());if (color != null) {jTextArea1.setForeground(color);}this.repaint();}void jMenuEditBColor_actionPerformed(ActionEvent e) {Color color = JColorChooser.showDialog(this,"Background Color",jTextArea1.getBackground());if (color != null) {jTextArea1.setBackground(color);}this.repaint();}void document1_changedUpdate(DocumentEvent documentEvent) {saveNeeded=true;updateTitle();}void document1_insertUpdate(DocumentEvent documentEvent) {saveNeeded=true;updateTitle();}void document1_removeUpdate(DocumentEvent documentEvent) {saveNeeded=true;updateTitle();}void document1_undoableEditHappened(UndoableEditEvent e) {edit.addEdit(e.getEdit());}void jMenuEditUndo_actionPerformed(ActionEvent e) {edit.undo();}void jMenuEditRedo_actionPerformed(ActionEvent e) {edit.redo();}void jMenuEdit_focusGained(FocusEvent e) {boolean selFlag = false;if (jTextArea1.getSelectedText() != null) {selFlag = true;}jMenuEditCopy.setEnabled(selFlag);jMenuEditCut.setEnabled(selFlag);boolean copyedFlag = false;if (sysClipboard.getContents(this) != null) {copyedFlag = true;}jMenuEditPaste.setEnabled(copyedFlag);jMenuEditUndo.setEnabled(edit.canUndo() );jMenuEditRedo.setEnabled(edit.canRedo() );}}class TextEditorFrame_jMenuFileNew_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuFileNew_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuFileNew_actionPerformed(e);}}class TextEditorFrame_jMenuFileOpen_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuFileOpen_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuFileOpen_actionPerformed(e);}}class TextEditorFrame_jMenuFileSave_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuFileSave_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuFileSave_actionPerformed(e);}}class TextEditorFrame_jMenuFileSaveas_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuFileSaveas_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuFileSaveas_actionPerformed(e);}}class TextEditorFrame_jMenuFileExit_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuFileExit_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuFileExit_actionPerformed(e);}}class TextEditorFrame_jMenuEditCopy_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuEditCopy_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuEditCopy_actionPerformed(e);}}class TextEditorFrame_jMenuEditCut_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuEditCut_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuEditCut_actionPerformed(e);}}class TextEditorFrame_jMenuEditPaste_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuEditPaste_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuEditPaste_actionPerformed(e);}}class TextEditorFrame_jMenuEditColor_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuEditColor_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuEditColor_actionPerformed(e);}}class TextEditorFrame_jMenuEditBColor_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuEditBColor_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuEditBColor_actionPerformed(e);}}class TextEditorFrame_document1_documentAdapter implements javax.swing.event.DocumentListener {TextEditorFrame adaptee;TextEditorFrame_document1_documentAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void insertUpdate(DocumentEvent documentEvent) {adaptee.document1_insertUpdate(documentEvent);}public void removeUpdate(DocumentEvent documentEvent) {adaptee.document1_removeUpdate(documentEvent);}public void changedUpdate(DocumentEvent documentEvent) {adaptee.document1_changedUpdate(documentEvent);}}class TextEditorFrame_document1_undoableEditAdapter implements javax.swing.event.UndoableEditListener {TextEditorFrame adaptee;TextEditorFrame_document1_undoableEditAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void undoableEditHappened(UndoableEditEvent e) {adaptee.document1_undoableEditHappened(e);}}class TextEditorFrame_jMenuEditUndo_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuEditUndo_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuEditUndo_actionPerformed(e);}}class TextEditorFrame_jMenuEditRedo_actionAdapter implements java.awt.event.ActionListener {TextEditorFrame adaptee;TextEditorFrame_jMenuEditRedo_actionAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuEditRedo_actionPerformed(e);}}class TextEditorFrame_jMenuEdit_focusAdapter extends java.awt.event.FocusAdapter {TextEditorFrame adaptee;TextEditorFrame_jMenuEdit_focusAdapter(TextEditorFrame adaptee) {this.adaptee = adaptee;}public void focusGained(FocusEvent e) {adaptee.jMenuEdit_focusGained(e);}}

⌨️ 快捷键说明

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