• Home
  • pcDuino
  • WiKi
  • Store
  • Distributors
  • Home
  • pcDuino
  • WiKi
  • Store
  • Distributors
HomepcDuinoJavaUsing Java to make a simple text editor for pcDuin ...
Previous Next

Using Java to make a simple text editor for pcDuino

Posted by: Alvin Jin , March 22, 2014

[vc_row][vc_column width=”1/1″][vc_column_text]This post shows a simple text editor created with Java on pcDuino.[/vc_column_text][vc_tour][vc_tab title=”The resulting Text Editor” tab_id=”1395292933-1-67″][vc_column_text]The designed text editor:

图片121[/vc_column_text][/vc_tab][vc_tab title=”Source code” tab_id=”1395292933-2-18″][vc_column_text]

import java.awt *.;
import java.awt.event *.;
import java.io. *;

public class Notepad / * implements ActionListener, MouseListener, MouseMotionListener, WindowListener, ItemListener, KeyListener, TextListener * /
{
/ / Member variables
private Frame mainFrame ;/ / main frame
private MenuBar mb; / / menu bar
private Menu mFile, mEdit, mFormat, mHelp; / / menus : File, Edit , format, help
private MenuItem miNew, miOpen, miSave, miSaveAs, miExit ;/ / File menu items: New, Open, Save , Save As , Exit
private MenuItem miCut, miCopy, miPaste, miDelete ;/ / Edit menu item : cut, copy , paste, delete
private MenuItem miFont, miLowtoCapital, miCapitaltoLow, miEncrypt, miDisencrypt ;/ / Format menu items : Fonts
private MenuItem miAboutNotepad ;/ / Help menu item : About Notepad

private TextArea ta ;/ / text area

String private String tempString ;/ / temporary string , copy and paste the need for storage

private boolean textValueChanged = false;

private int id_font ;/ / fonts

String fileName = "" ;/ / last saved the file name and address

/ / Constructor
public Notepad () {

   / / Frame
   mainFrame = new Frame ("Notepad v0.99 by Launching");
   mb = new MenuBar ();
   ta = new TextArea (30, 60);
   ta.setFont (new Font ("Times New Rome", Font.PLAIN, 15));
   ta.setBackground (new Color (0, 250, 200));

   / / Menu bar
   mFile = new Menu (" File" ) ;
   mEdit = new Menu (" Edit" ) ;
   mFormat = new Menu (" format t");
   mHelp = new Menu (" Help " ) ;

   / / " File"
   miNew = new MenuItem (" New" ) ;
   miOpen = new MenuItem (" Open" ) ;
   miSave = new MenuItem (" Save" ) ;
   miSaveAs = new MenuItem (" Save As" ) ;
   miExit = new MenuItem (" Exit" ) ;

   / / " Edit"
   miCut = new MenuItem (" Cut" ) ;
   miCopy = new MenuItem (" Copy" ) ;
   miPaste = new MenuItem (" Paste" ) ;
   miDelete = new MenuItem (" Delete" ) ;

   / / " Format "
   miFont = new MenuItem ("Font");
   miLowtoCapital = new MenuItem ("Low to Capital");
   miCapitaltoLow = new MenuItem ("Capital to Low");
   miEncrypt = new MenuItem ("Encrypt");
   miDisencrypt = new MenuItem ("Disencrypt");

   / / "Help"
   miAboutNotepad = new MenuItem (" About Notepad");

   / / Add File menu item
   mFile.add (miNew);
   mFile.add (miOpen);
   mFile.add (miSave);
   mFile.add (miSaveAs);
   mFile.add (miExit);

   / / Add the Edit menu items
   mEdit.add (miCut);
   mEdit.add (miCopy);
   mEdit.add (miPaste);
   mEdit.add (miDelete);

   / / Add formatting menu items
   mFormat.add (miFont);
   mFormat.add (miLowtoCapital);
   mFormat.add (miCapitaltoLow);
   mFormat.add (miEncrypt);
   mFormat.add (miDisencrypt);

   / / Add the Help menu item
   mHelp.add (miAboutNotepad);

   / / Add menu menu bar
   mb.add (mFile);
   mb.add (mEdit);
   mb.add (mFormat);
   mb.add (mHelp);

   / / Add menu bar frame
   mainFrame.setMenuBar (mb);

   / / Assign the initial string is empty
   tempString = "";

   / / Add text area
   mainFrame.add (ta, BorderLayout.CENTER);

   mainFrame.setSize (800, 500);
   mainFrame.setLocation (100, 100) ;/ / start position
   mainFrame.setResizable (true) ;/ / can not change the size
   mainFrame.setVisible (true);
   / / mainFrame.pack ();
    / / / / / / / / / / / / / / / / / / / / / / / / / Increase the monitor / / / / / / / / / / / / / / / / / / / / / /

   / / Main frame
   mainFrame.addWindowListener (new WindowAdapter () {/ / Close the window
    public void windowClosing (WindowEvent e) {
     System.exit (0);
    }
   } ) ;

   / / Text area
   ta.addKeyListener (new KeyAdapter () {
    public void KeyTyped (KeyEvent e) {
     textValueChanged = true; / / keyboard button that causes the text to modify
    }
   } ) ;

   / / / / / / / / / / / / / / / / " File" menu :/ / / / / / / / / / / / / / / / / / / / / /

   / / New
   miNew.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {

     ta.replaceRange ("", 0, ta.getText (). length ()) content ;/ / empty text area

     fileName = "" ;/ / file name cleared
    }
   } ) ;

   / / Open
   miOpen.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {

     FileDialog d = new FileDialog (mainFrame, "open file", FileDialog.LOAD) ;/ / open file dialog

     d.addWindowListener (new WindowAdapter () {/ / Close the file dialog window
      public void windowClosing (WindowEvent ee) {
       System.exit (0);
      }
     } ) ;
     d.setVisible (true);

     File f = new File (d.getDirectory () + d.getFile ()); / / Create a new document

     fileName = d.getDirectory () + d.getFile () ;/ / get the file name

     char ch [] = new char [(int) f.length ()] ;/ / / This file is used to establish the length of an array of characters

     try / / exception handling
     {
      / / Read and stored in the character array ch
      BufferedReader bw = new BufferedReader (new FileReader (f));
      bw.read (ch);
            bw.close ();
     }
     catch (FileNotFoundException fe) {
      System.out.println ("file not found");
      System.exit (0);
     }
     catch (IOException ie) {
      System.out.println ("IO error");
      System.exit (0);
     }

     String s = new String (ch);

     ta.setText (s) ;/ / set the text area to open the file contents
    }
   } ) ;

   / / Save
   miSave.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {

     if (fileName.equals ("")) {/ / If the file is not saved , that file name is empty

     FileDialog d = new FileDialog (mainFrame, "save file", FileDialog.SAVE) ;/ / save file dialog

     d.addWindowListener (new WindowAdapter () {/ / Close the file dialog window
      public void windowClosing (WindowEvent ee) {
       System.exit (0);
      }
     } ) ;
     d.setVisible (true);

     String s = ta.getText () ;/ / get the input text

     try / / exception handling
     {
      File f = new File (d.getDirectory () + d.getFile ()) ;/ / New File

      fileName = d.getDirectory () + d.getFile () ;/ / get the file name

      BufferedWriter bw = new BufferedWriter (new FileWriter (f)) ;/ / input to a file
      bw.write (s, 0, s.length ());
      bw.close ();

     }
     catch (FileNotFoundException fe_) {
      System.out.println ("file not found");
      System.exit (0);
     }
     catch (IOException ie_)
     {
      System.out.println ("IO error");
      System.exit (0);
     }

           }

     else / / If the file has been saved
     {
      String s = ta.getText () ;/ / get the input text

     try / / exception handling
     {
      File f = new File (fileName) ;/ / New File

      BufferedWriter bw = new BufferedWriter (new FileWriter (f)) ;/ / input to a file
      bw.write (s, 0, s.length ());
      bw.close ();

     }
     catch (FileNotFoundException fe_) {
      System.out.println ("file not found");
      System.exit (0);
     }
     catch (IOException ie_)
     {
      System.out.println ("IO error");
      System.exit (0);
     }

     }

    }
   } ) ;

   / / Save as
   miSaveAs.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {
     FileDialog d = new FileDialog (mainFrame, "save file", FileDialog.SAVE) ;/ / save file dialog

     d.addWindowListener (new WindowAdapter () {/ / Close the file dialog window
      public void windowClosing (WindowEvent ee) {
       System.exit (0);
      }
     } ) ;
     d.setVisible (true);

     String s = ta.getText () ;/ / get the input text

     try / / exception handling
     {
      File f = new File (d.getDirectory () + d.getFile ()) ;/ / New File

      BufferedWriter bw = new BufferedWriter (new FileWriter (f)) ;/ / input to a file
      bw.write (s, 0, s.length ());
      bw.close ();

     }
     catch (FileNotFoundException fe_) {
      System.out.println ("file not found");
      System.exit (0);
     }
     catch (IOException ie_)
     {
      System.out.println ("IO error");
      System.exit (0);
     }
    }
   } ) ;

   / / Exit
   miExit.addActionListener (new ActionListener () {/ / / exit the program
    public void actionPerformed (ActionEvent e) {
     System.exit (0);
    }
   } ) ;

   / / / / / / / / / / / / / / / / " Edit" menu :/ / / / / / / / / / / / / / / / / / / /

   / / Cut
   miCut.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {
     tempString = ta.getSelectedText (); / / / get the content you want to copy , temporary storage in the tempString
     StringBuffer tmp = new StringBuffer (ta.getText ()) ;/ / temporary storage of text
     int start = ta.getSelectionStart (); starting position / / get the string to be deleted
     int len ​​= ta.getSelectedText () length ();. / / get the length of the string to be deleted
     tmp.delete (start, start + len); / / / delete the selected string
     ta.setText (tmp.toString ()) ;/ / set the original text with new text
    }
   } ) ;

   / / Copy
   miCopy.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {
     tempString = ta.getSelectedText (); / / / get the content you want to copy , temporary storage in the tempString
    }
   } ) ;

   / / Paste
   miPaste.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {
     StringBuffer tmp = new StringBuffer (ta.getText ()) ;/ / temporary storage of text
     int start = ta.getSelectionStart (); / / get the position you want to paste
     tmp.insert (start, tempString) ;/ / check the contents to be pasted into the
     ta.setText (tmp.toString ()) ;/ / set the original text with new text
    }
   } ) ;

   / / Delete
   miDelete.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {
     StringBuffer tmp = new StringBuffer (ta.getText ()) ;/ / temporary storage of text
     int start = ta.getSelectionStart (); starting position / / get the string to be deleted
     int len ​​= ta.getSelectedText () length ();. / / get the length of the string to be deleted
     tmp.delete (start, start + len); / / / delete the selected string
     ta.setText (tmp.toString ()) ;/ / set the original text with new text
    }
   } ) ;

   / / / / / / / / / / / / / / / / " Format" menu :/ / / / / / / / / / / / / / / / / / / /

   / / Fonts
   miFont.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {
     final Dialog d = new Dialog (mainFrame, "Font") ;/ / New dialog box
     d.setLocation (250, 250) ;/ / start position

     d.setLayout (new BorderLayout ()) ;/ / table layout

    / / / / / / / / / / / / / / / / / / / / / / / / / / Upper part of the panel
     Label l_font = new Label ("font") ;/ / font tag
     Panel p_1 = new Panel ();
     p_1.add (l_font);
     p_1.setVisible (true);

    / / / / / / / / / / / / / / / / / / / / / / / / / / Part of the panel
     List font_list = new List (6, false) ;/ / font list

     / / Add font project
     font_list.add ("Plain") ;/ / / normal font
     font_list.add ("Bold"); / / / Bold
     font_list.add ("Italic") ;/ / italic

     font_list.addItemListener (new MyItemListener_font ()); / / font increase Monitors

     Panel p_2 = new Panel ();
     p_2.add (font_list);
     p_2.setVisible (true);

    / / / / / / / / / / / / / / / / / / / / / / / / / / Lower part of the panel
     Button ok = new Button ("OK");
     ok.addActionListener (new ActionListener () {
      public void actionPerformed (ActionEvent e) {
       d.dispose ();
      }
     } ) ;
     ok.setSize (new Dimension (20, 5));

           Panel p_3 = new Panel () ;/ / lower part of the panel
           p_3.add (ok);
     p_3.setVisible (true);

     / / Add three panels
     d.add (p_1, BorderLayout.NORTH);
     d.add (p_2, BorderLayout.CENTER);
     d.add (p_3, BorderLayout.SOUTH);
     d.pack ();

     d.addWindowListener (new WindowAdapter () {/ / Close the dialog window
      public void windowClosing (WindowEvent ee) {
       d.dispose ();
      }
     } ) ;

     d.setVisible (true);
          }
   } ) ;

   / / Turn uppercase lowercase letters
   miLowtoCapital.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {
     String s = ta.getText () ;/ / get the input text
     StringBuffer temp = new StringBuffer ("");
     for (int i = 0; i <s.length (); i + +) {
      if ((int) s.charAt (i)> = 97 && (int) s.charAt (i) <= 122) {
       temp.append ((char) ((int) s.charAt (i) -32));
      }
      else
       temp.append (s.charAt (i));
     }
     s = new String (temp);
     ta.setText (s);
    }
   } ) ;

   / / Turn uppercase lowercase
   miCapitaltoLow.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {
     String s = ta.getText () ;/ / get the input text
     StringBuffer temp = new StringBuffer ("");
     for (int i = 0; i <s.length (); i + +) {
      if ((int) s.charAt (i)> = 65 && (int) s.charAt (i) <= 90) {
       temp.append ((char) ((int) s.charAt (i) +32));
      }
      else
       temp.append (s.charAt (i));
     }
     s = new String (temp);
     ta.setText (s);
    }
   } ) ;

   / / Encryption
   miEncrypt.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {
     String s = ta.getText () ;/ / get the input text
     StringBuffer temp = new StringBuffer ("");
     for (int i = 0; i <s.length (); i + +) {
      if (s.charAt (i)> = 40 && s.charAt (i) <= 125) {
       if (i% 2 == 0) {
        temp.append ((char) (s.charAt (i) + 1));
       }
       else
        temp.append ((char) (s.charAt (i) - 1));
      }
      else
       temp.append (s.charAt (i));

     }
     s = new String (temp);
     ta.setText (s);
    }
   } ) ;

   / / Decryption
   miDisencrypt.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {
     String s = ta.getText () ;/ / get the input text
     StringBuffer temp = new StringBuffer ("");
     for (int i = 0; i <s.length (); i + +) {
      if (s.charAt (i)> = 40 && s.charAt (i) <= 125) {
       if (i% 2 == 0) {
        temp.append ((char) (s.charAt (i) - 1));
       }
       else
        temp.append ((char) (s.charAt (i) + 1));
      }
      else
       temp.append (s.charAt (i));
     }
     s = new String (temp);
     ta.setText (s);
    }
   } ) ;

   / / / / / / / / / / / / / / / / " Help" menu :/ / / / / / / / / / / / / / / / / / / /

   / / About notepad
   miAboutNotepad.addActionListener (new ActionListener () {
    public void actionPerformed (ActionEvent e) {
     final Dialog d = new Dialog (mainFrame, "AboutNotepad") ;/ / New dialog box
     TextArea t = new TextArea ("\ nwelcome to use Notepad" + "\ n \ n" + "Copyright @ Launching" + "\ n \ n" + "free software" + "\ n \ n" + "v0.99 " ) ;/ / add tags
     t.setSize (new Dimension (5, 5));
     t.setEditable (false);
     d.setResizable (false) ;/ / non-resizable
     d.add (t);
     d.pack ();

     d.addWindowListener (new WindowAdapter () {/ / Close the dialog window
      public void windowClosing (WindowEvent ee) {
       d.dispose ();
      }
     } ) ;
     d.setLocation (100, 250) ;/ / start position
     d.setVisible (true);
    }
   } ) ;

}

class MyItemListener_font implements ItemListener {/ / font Listener
   public void itemStateChanged (ItemEvent e) {
    id_font = ((java.awt.List) e.getSource ()) getSelectedIndex ().;
    switch (id_font) {
     case 0: {
      ta.setFont (new Font ("Times New Roman", Font.PLAIN, ta.getFont (). getSize ())) ;/ / normal text
      break;
     }
     case 1: {
      ta.setFont (new Font ("Times New Roman", Font.BOLD, ta.getFont (). getSize ())) ;/ / bold text
      break;
     }
     case 2: {
      ta.setFont (new Font ("Times New Roman", Font.ITALIC, ta.getFont (). getSize ())) ;/ / italic text
      break;
           }
    }
   }
}

/ / / / / / / / / / / / / / / / / / / / / / Main function / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
public static void main (String arg []) {
   Notepad test = new Notepad (); / / / Create a notepad
}
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
}

[/vc_column_text][/vc_tab][/vc_tour][/vc_column][/vc_row]

Tags: Java

Share!
Tweet

Alvin Jin

About the author

Leave a Reply Cancel reply

You must be logged in to post a comment.

Category

  • Home
  • pcDuino
  • WiKi
  • Store
  • Distributors