Java Notepad and Interface (1)

xiaoxiao2021-03-06  39

Package proe;

Import java.aw.swing. *; import java.awt.Event. *; import java.io. *; import javax.swing.text. *; import javax.swing.event. *; import javax .swing.undo. *; import java.util. *;

/ ** *

Title: Program Editor *

Description: Enhanced Text Editing *

Copyright: CopyRight (C) 2005 *

Company: * @ Author Red Tie * @ Version 0.1 * / Class Proeframe Extends JFrame {Private Jfilechooser Filechooser = New Jfilechooser ();

private JMenuBar menuBar; private JMenu file, edit, format, help; private JMenuItem newItem, openItem, saveItem, saveAsItem, pageSetItem, printItem, exitItem; private JMenuItem undoItem, redoItem, cutItem, copyItem, pasteItem, deleteItem, findItem, findNextItem, replaceItem, goToLineItem, selectAllItem, timeItem; private JMenuItem autoNextLineItem, fontItem; private JMenuItem helpItem, aboutItem; private JTextArea textArea; private JScrollPane scrollPane; private final int TAB_SIZE = 4;

Private file filename; private bolean ischange = false;

Private final undomanager undo = new undomanager ();

Public Proeframe (String Title) {// Setting the form of the title bar and the default shutdown operation Super (Title); setfaultcloseOperation; DO_NOTHING_ON_CLOSE

// Set the content of the menu and menu MenuBar = new jmenubar (); file = new jmenu ("file (f)"); edit = new jmenu ("Edit (E)"); Format = New Jmenu ("Format O) ")") "); help = new jmenu (" Help (H) "); setQuickKey (File, 'F'); setQuickKey (EDIT, 'E'); setQuickKey (Format, 'o'); setquickKey (Help, ' H '); newItem = new jMenuitem ("New (N)"); OpenItem = New Jmenuitem ("Open (O) ..."); SaveItem = New Jmenuitem ("Save (S)"); SaveAsItem = New Jmenuitem ("Save As ..."); PageSetItem = New Jmenuitem ("Page Settings (U) ..."); PrintItem = New Jmenuitem ("Print (P) ..."); exitItem = new jmenuitem ("Exit "); SetQuickKey (NewItem, 'n'); setQuickKey (OpenItem, 'o'); setQuickKey (SaveItem, 's'); setquickKey (PageSetItem, 'u'); setquickKey (PrintItem, 'P'); file. Add (newitem); file.add (saveitem); file.add (saveasitem); file.addseparetor (); file.add (PageSetItem); file.add (PrintItem); file.addseParator ); File.add (exitItem); undoitem = new jmenuitem ("revoked (Z)"); redoItem = new jMenuItem ("Restore (R)"); cutitem = new jmenuitem ("Cut (X)"); CopyItem = New Jmenuitem ("Copy (C)"); PasteItem = New Jmenu Item ("Paste (V)"); deleteItem = new jmenuitem ("delete"); FindItem = new jmenuitem ("Find (F) ..."); FindNextItem = New Jmenuitem ("Find Next"; ReplaceItem = New JMenuitem ("Replace ..."); gotolineItem = new jMenuItem ("Go to (G) ..."); selectallItem = new jMenuItem ("allocate (a)"); timeItem = new jMenuItem ("time / date");

SetQuickKey (UndoItem, 'z'); setquickKey (redoItem, 'x'); setQuickKey (CopyItem, 'c'); setquickKey (PasteItem, 'V'); setquickKey (FindItem, ' F '; setQuickKey (GotolineItem,' g '); setQuickKey (SelectllItem,' a '); edit.add (undoitem); Edit.Add (RedoItem); Edit.AddSeparator (); edit.add (cutitem); Edit; Edit; .add (copyItem); edit.add (deleteItem); Edit.AddSeparator (); Edit.Add (FindItem); Edit.Add (ReplaceItem); Edit.Add (gotolineItem); edit.addseParator (); edit.add (selectllItem); edit.add (timeItem); autOnextLineItem = new jMenuitem ("Automatic Wrap (W)"); fontItem = New Jmenuitem ("Font ...") ;

SetQuickKey (AutoNextLineItem, 'W');

Format.Add (AutoTONEXTLINEITEM); Format.Add (FontItem);

HelpItem = New Jmenuitem ("Help Topics (H)"); AboutItem = New JmenuItem ("About ProE");

SetQuickKey (HelpItem, 'h');

Help.add (helpitem); Help.Add (AboutItem);

Menubar.add (file); menubar.add (edit); menubar.add (format); menuBar.Add (Help); setjmenubar;

textArea = new JTextArea (); textArea.setTabSize (TAB_SIZE); // support Undo / Redo operations listener method textArea.getDocument () addUndoableEditListener (new UndoableEditListener () {public void undoableEditHappened (UndoableEditEvent evt) {undo.addEdit (evt. .getEdit ());}}); // monitor whether the content of the document changes textArea.getDocument () occurs addDocumentListener (new DocumentListener () {public void changedUpdate (DocumentEvent de) {isChange = true;.} public void insertUpdate (DocumentEvent de ) {isChange = true;} public void removeUpdate (DocumentEvent de) {isChange = true;}}); scrollPane = new JScrollPane (textArea);. this.getContentPane () add (scrollPane, BorderLayout.CENTER);

A method of testing MenuItemEventHandler menuItemHandler // = new MenuItemEventHandler (); newItem.addActionListener (menuItemHandler); openItem.addActionListener (menuItemHandler); saveItem.addActionListener (menuItemHandler); saveAsItem.addActionListener (menuItemHandler); pageSetItem.addActionListener (menuItemHandler); printItem .addActionListener (menuItemHandler); exitItem.addActionListener (menuItemHandler); undoItem.addActionListener (menuItemHandler); redoItem.addActionListener (menuItemHandler); cutItem.addActionListener (menuItemHandler); copyItem.addActionListener (menuItemHandler); pasteItem.addActionListener (menuItemHandler); deleteItem. addActionListener (menuItemHandler); findItem.addActionListener (menuItemHandler); findNextItem.addActionListener (menuItemHandler); replaceItem.addActionListener (menuItemHandler); goToLineItem.addActionListener (menuItemHandler); selectAllItem.addActionListener (menuItemHandler); timeItem.addActionListener (menuItemHandler); autoNextLineItem.addActionListener (Menuitemhan dler); fontItem.addActionListener (menuItemHandler); helpItem.addActionListener (menuItemHandler); aboutItem.addActionListener (menuItemHandler); addWindowListener (new WindowAdapter () {public void windowClosing (WindowEvent we) {exitPerformed ();}});}

// Auxiliary method: Set the shortcut key Private Void SetquickKey (AbstractButton Button, Char Quickkey) {string type = button.getClass (). GetsimpleName (); if (Type.equals ("JMENU")) Button .setMnemonic (quickKey); else if (type.equals ( "JMenuItem")) {JMenuItem menuItem = (JMenuItem) button; menuItem.setAccelerator (KeyStroke.getKeyStroke (quickKey, InputEvent.CTRL_MASK));}}

// Auxiliary method: Test if there is a change in the text of JTextArea vary private boolean haschange () {return ischange;}

// internal method: Response menu event private void newperformed () {int value = -1; if (FileName! = Null && filename.exists ()) {String [] ButtonTexts = {"save", "Do not save", "cancel"}; value = joptionpane.showoptionDialog (this, "source program has changed, please confirm if you save!" [0]); if (value == joptionpane.yes_option) saveperformed (); else if (value == joptionpane.no_option) {filename = null; textarea.setText (""); settitle); Else if (value == joptionpane.cancel_option) return;} else {saveasperformed (); filename = null; textarea.setText ("program editor"); return;} filename = null; TextArea.setText (""); settitle ("Program Editor"); ischange = false; return;}

private void openPerformed () {BufferedReader input = null; String text; int ret = fileChooser.showOpenDialog (this); if (! ret = JFileChooser.APPROVE_OPTION) return; newPerformed (); fileName = fileChooser.getSelectedFile (); if (fileName .exists () && filename.canread ()) {settitle ("Program Editor:" FileName.GetName ()); try {infut = new bufferedreader (new filereader); while ((text = input.readline) ())! = null) TextArea.Append (Text "/ N"); input.close ();} catch (ioException e) {joptionpane.showMessageDialog (this, "file open error, no open");} Finally {input = null;}} isChange = false;} private void savePerformed () {if return (hasChange ()!); PrintWriter output = null; if (! fileName = null && fileName.exists ()) {try {output = New PrintWriter; Output.write (TextArea.getText ());} catch (ioException e) {joptionpane.showMessageDialog (this, "file write error, no saving");} finally {o utput.close (); output = null;} isChange = false;} else saveAsPerformed (); (! hasChange ())} private void saveAsPerformed () {if return; PrintWriter output = null; int ret = fileChooser.showSaveDialog (this ); If (ret! = Jfilechooser.Approve_option) {ischange = true; return;}

Filename = filechooser.getSelectedFile (); setTitle ("Program Editor:" FileName.getName ()); tryname; output.write (TextArea.getText ());} catch (ooException e ) {JOPANE.SHOWMESSAGEDIALOG (this, "file write error, no saving");} finally {Output.close (); output = null;} ischange = false;} private void PagesetPerformed () {system.out.println "Display Page Setup dialog");} private void printperformed () {system.out.println ("Show Print Dialog");} Private void EXITPERFORMED () {string [] ButtonTexts = {"save exit", "No Save exit "," cancel "}; int value = -1; if (Haschange ()) {value = JOTIONPANE.SHOWOPTIONDIALOG (this," source program has changed, please select Save or Det out! "," Exit Program " , JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, buttonTexts, buttonTexts [0]); switch (value) {case JOptionPane.YES_OPTION: savePerformed (); break; case JOptionPane.NO_OPTION: System.exit (0); break; case JOPTIONPANE.CANCEL_OPTION: ISCHANGE = true; return;}} else syst Em.exit (0);} private void determed () {try {if ()) undo.undo ();} catch (cannotundoExcection e) {JOPANE.SHOWMESSAGEDIALOG (this, "Unable to perform undo operation", "undo abnormal", JOptionPane.WARNING_MESSAGE);}} private void redoPerformed () {try {if (undo.canRedo ()) undo.redo ();} catch (CannotRedoException e) {JOptionPane.showMessageDialog (this, "can not be performed recovery operation "," abnormal restoration ", JOptionPane.WARNING_MESSAGE);}} private void cutPerformed () {textArea.cut ();} private void copyPerformed () {textArea.copy ();} private void pastePerformed () {textArea. Paste ();

} Private void deletePerformed () {textArea.replaceRange (null, textArea.getSelectionStart (), textArea.getSelectionEnd ());} private void findPerformed () {String findString = JOptionPane.showInputDialog (this,);} private void findNextPerformed () {System.out.println ("Find Next");} private void replacePerformed () {system.out.println ("replace");} private void gotolineperformed () {system.out.println ("Go to") ;} private void selectAllPerformed () {textArea.selectAll ();} private void timePerformed () {textArea.insert ((new Date ()) toString (), textArea.getSelectionEnd ().);} private void autoNextLinePerformed () { System.out.println ("Automatic Wrap");} Private Void Fontperformed () {System.out.Println ("Font");} private void helpperformed () {system.out.println ("Help Topic) Private void aboutperformed () {system.out.println ("About Program");}

转载请注明原文地址:https://www.9cbs.com/read-66262.html

New Post(0)