📄 texteditorframe.java
字号:
} /**File | Exit action performed*/ public void jMenuFileExit_actionPerformed(ActionEvent e) { if (!okToAbandon()) { return ;} System.exit(0); } /**Help | About action performed*/ public 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.show(); } /**Overridden so we can exit when window is closed*/ protected void processWindowEvent(WindowEvent e) { if (e.getID() == WindowEvent.WINDOW_CLOSING) { if (!okToAbandon()) { return ;} System.exit(0); } super.processWindowEvent(e); } void jMenuFileNew_actionPerformed(ActionEvent e) { if(okToAbandon()){ jTextArea1.setText(""); currentFileName = null; saveNeeded = false; updateTitle(); } } void jMenuFileOpen_actionPerformed(ActionEvent e) { openFile(); } void jButton1_actionPerformed(ActionEvent e) { openFile(); } void jMenuFileSave_actionPerformed(ActionEvent e) { saveFile(); } void jButton2_actionPerformed(ActionEvent e) { saveFile(); } void jMenuFileSaveas_actionPerformed(ActionEvent e) { saveAsFile(); } void jButton3_actionPerformed(ActionEvent e) { edit.undo(); edit.redo(); } void this_windowClosing(WindowEvent e) { if (!okToAbandon()) { show();return;} System.exit(0); } void jMenuEditFont_actionPerformed(ActionEvent e) { fontChooser1.setSelectedFont(jTextArea1.getFont()); if (fontChooser1.showDialog()) { jTextArea1.setFont(fontChooser1.getSelectedFont()); } this.repaint(); jTextArea1.repaint(); } 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 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; }} void document1_changedUpdate(DocumentEvent e) { saveNeeded = true;updateTitle(); } void this_ancestorResized(HierarchyEvent e) { } void document1_insertUpdate(DocumentEvent e) { saveNeeded = true;updateTitle(); } void document1_removeUpdate(DocumentEvent e) { saveNeeded = true;updateTitle(); } void document1_undoableEditHappened(UndoableEditEvent e) { edit.addEdit(e.getEdit()) ; } 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 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() ); } void jMenuEditSelAll_actionPerformed(ActionEvent e) { jTextArea1.selectAll(); } void jMenuEditUndo_actionPerformed(ActionEvent e) { edit.undo(); } void jMenuEditRedo_actionPerformed(ActionEvent e) { edit.redo(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -