📄 texteditorframe.java~14~
字号:
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();JMenuItem jMenuHelpAbout = new JMenuItem();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();//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");jMenuHelpAbout.setText("About");jMenuHelpAbout.addActionListener(new TextEditorFrame_jMenuHelpAbout_ActionAdapter(this));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);jMenuHelp.add(jMenuHelpAbout);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);}//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) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -