Add to Favorites    Make Home Page 25591 Online  
 Language Categories  
 Our Services  

Home » Java Home » Java Applets Home » Text Editor


Search Projects & Source Codes:

Title Text Editor
Author saravanakumar.p
Author Email sar_v_1983 [at]
Description it is similar to notepad and user friendly
Category Java » Java Applets
Hits 24981
Code Select and Copy the Code
import java.awt.*; import java.awt.event.*; import java.awt.datatransfer.*; import java.applet.*; import*; import javax.swing.*; import javax.swing.undo.*; import java.util.Hashtable; class UndoableTextArea extends TextArea implements StateEditable { private final static String KEY_STATE="UndoableTextAreaKey"; private boolean textChanged=false; private UndoManager undoManager; private StateEdit currentEdit; public UndoableTextArea() { super(); initUndoable(); } public UndoableTextArea(String string) { super(string); initUndoable(); } public UndoableTextArea(int rows,int columns) { super(rows,columns); initUndoable(); } public UndoableTextArea(String string,int rows,int columns) { super(string,rows,columns); initUndoable(); } public UndoableTextArea(String string,int rows,int columns,int scrollbars) { super(string,rows,columns,scrollbars); initUndoable(); } public boolean undo(){ try{ undoManager.undo(); return true; } catch(CannotUndoException e) { System.out.println("cannot undo"); return false; } } public boolean redo() { try{ undoManager.redo(); return true; } catch(CannotRedoException e) { System.out.println("cannot redo"); return false; } } public void storeState(Hashtable state) { state.put(KEY_STATE,getText()); } public void restoreState(Hashtable state) { Object data=state.get(KEY_STATE); if(data!=null){ setText((String)data); } } private void takeSnapshot() { if(textChanged) { currentEdit.end(); undoManager.addEdit(currentEdit); textChanged=false; currentEdit=new StateEdit(this); } } private void initUndoable() { undoManager =new UndoManager(); currentEdit=new StateEdit(this); addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent event){ if(event.isActionKey()){ takeSnapshot(); } } }); addFocusListener(new FocusAdapter(){ public void focusLost(FocusEvent fe){ takeSnapshot(); } }); addTextListener(new TextListener(){ public void textValueChanged(TextEvent e){ textChanged=true; takeSnapshot(); } }); } } public class TextEditor extends Frame { boolean b=true; Frame fm; FileDialog fd; Font f; int style=Font.PLAIN; int fsize=12; UndoableTextArea txt; String filename,st,fn="untitled",dn; Clipboard clip=getToolkit().getSystemClipboard(); TextEditor() { f=new Font("Courier",style,fsize); setLayout(new GridLayout(1,1)); txt=new UndoableTextArea(80,25); txt.setFont(f); add(txt); MenuBar mb=new MenuBar(); Menu fonttype=new Menu("FontType"); MenuItem one,two,three,four,five,six; one=new MenuItem("TimesRoman"); two=new MenuItem("Helvetica"); three=new MenuItem("Courier"); four=new MenuItem("Arial"); five=new MenuItem("Arial Black"); six=new MenuItem("Century"); fonttype.add(one); fonttype.add(two); fonttype.add(three); fonttype.add(four); fonttype.add(five); fonttype.add(six); one.addActionListener(new Type()); two.addActionListener(new Type()); three.addActionListener(new Type()); four.addActionListener(new Type()); five.addActionListener(new Type()); six.addActionListener(new Type()); Menu fontmenu=new Menu("Font"); MenuItem boldmenu=new MenuItem("Bold"); MenuItem plainmenu=new MenuItem("Plain"); MenuItem italicmenu=new MenuItem("Italic"); fontmenu.add(boldmenu); fontmenu.add(plainmenu); fontmenu.add(italicmenu); boldmenu.addActionListener(new FM()); plainmenu.addActionListener(new FM()); italicmenu.addActionListener(new FM()); Menu size=new Menu("Size"); MenuItem s1,s2,s3,s4,s5,s6,s7,s8,s9,s10; s1=new MenuItem("10"); s2=new MenuItem("12"); s3=new MenuItem("14"); s4=new MenuItem("16"); s5=new MenuItem("18"); s6=new MenuItem("20"); s7=new MenuItem("22"); s8=new MenuItem("24"); s9=new MenuItem("26"); s10=new MenuItem("28"); size.add(s1); size.add(s2); size.add(s3); size.add(s4); size.add(s5); size.add(s6); size.add(s7); size.add(s8); size.add(s9); size.add(s10); s1.addActionListener(new Size()); s2.addActionListener(new Size()); s3.addActionListener(new Size()); s4.addActionListener(new Size()); s5.addActionListener(new Size()); s6.addActionListener(new Size()); s7.addActionListener(new Size()); s8.addActionListener(new Size()); s9.addActionListener(new Size()); s10.addActionListener(new Size()); size.addActionListener(new FM()); fontmenu.add(size); Menu file=new Menu("File"); MenuItem n=new MenuItem("New",new MenuShortcut(KeyEvent.VK_N)); MenuItem o=new MenuItem("Open",new MenuShortcut(KeyEvent.VK_O)); MenuItem s=new MenuItem("Save",new MenuShortcut(KeyEvent.VK_S)); MenuItem e=new MenuItem("Exit",new MenuShortcut(KeyEvent.VK_E)); n.addActionListener(new New()); file.add(n); o.addActionListener(new Open()); file.add(o); s.addActionListener(new Save()); file.add(s); e.addActionListener(new Exit()); file.add(e); mb.add(file); addWindowListener(new Win()); Menu edit=new Menu("Edit"); MenuItem cut=new MenuItem("Cut",new MenuShortcut(KeyEvent.VK_X)); MenuItem copy=new MenuItem("Copy",new MenuShortcut(KeyEvent.VK_C)); MenuItem paste=new MenuItem("Paste",new MenuShortcut(KeyEvent.VK_V)); cut.addActionListener(new Cut()); edit.add(cut); copy.addActionListener(new Copy()); edit.add(copy); paste.addActionListener(new Paste()); edit.add(paste); Menu color =new Menu("Color"); MenuItem Bg=new MenuItem("Background"); MenuItem Fg=new MenuItem("Foreground"); Bg.addActionListener(new BC()); Fg.addActionListener(new BC()); Menu undo=new Menu("Undo&Redo"); MenuItem un=new MenuItem("Undo"); MenuItem re=new MenuItem("Redo"); re.addActionListener(new WW()); un.addActionListener(new WW()); undo.add(un); undo.add(re); color.add(Bg); color.add(Fg); mb.add(edit); mb.add(fontmenu); mb.add(fonttype); mb.add(color); mb.add(undo); setMenuBar(mb); mylistener mylist=new mylistener(); addWindowListener(mylist); } class WW implements ActionListener { public void actionPerformed(ActionEvent e) { String se=e.getActionCommand(); if(se.equals("Undo")) txt.undo(); if(se.equals("Redo")) txt.redo(); } } class mylistener extends WindowAdapter { public void windowClosing(WindowEvent we) { if(!b) System.exit(0); } } class New implements ActionListener { public void actionPerformed(ActionEvent ae) { txt.setText(" "); setTitle(filename); fn="Untitled"; } } class Open implements ActionListener { public void actionPerformed(ActionEvent ae) { FileDialog fd=new FileDialog(TextEditor.this,"Select File",FileDialog.LOAD);; if((fn=fd.getFile())!=null) { filename=fd.getDirectory()+fd.getFile(); dn=fd.getDirectory(); setTitle(filename); readFile(); } txt.requestFocus(); } } class Save implements ActionListener { public void actionPerformed(ActionEvent ae) { FileDialog fd=new FileDialog(TextEditor.this,"Save File",FileDialog.SAVE); fd.setFile(fn); fd.setDirectory(dn);; if(fd.getFile()!=null) { filename=fd.getDirectory()+fd.getFile(); setTitle(filename); writeFile(); txt.requestFocus(); } } } class Exit implements ActionListener { public void actionPerformed(ActionEvent ae) { System.exit(0); } } void readFile() { BufferedReader d; StringBuffer sb=new StringBuffer(); try{ d=new BufferedReader(new FileReader(filename)); String line; while((line=d.readLine())!=null) sb.append(line+" "); txt.setText(sb.toString()); d.close(); }catch(FileNotFoundException e){ System.out.println("File not found"); }catch(IOException e){ } } public void writeFile() { try{ DataOutputStream d=new DataOutputStream(new FileOutputStream(filename)); String line=txt.getText(); BufferedReader br=new BufferedReader(new StringReader(line)); while((line=br.readLine())!=null) { d.writeBytes(line+" "); }d.close(); }catch(Exception e){ System.out.println("File not found"); } } class Cut implements ActionListener { public void actionPerformed(ActionEvent ae) { String sel=txt.getSelectedText(); StringSelection ss=new StringSelection(sel); clip.setContents(ss,ss); txt.replaceRange(" ",txt.getSelectionStart(),txt.getSelectionEnd()); } } class Copy implements ActionListener { public void actionPerformed(ActionEvent ae) { String sel=txt.getSelectedText(); StringSelection clipstring=new StringSelection(sel); clip.setContents(clipstring,clipstring); } } class Paste implements ActionListener { public void actionPerformed(ActionEvent ae) { Transferable cliptran=clip.getContents(TextEditor.this); try{ String sel=(String)cliptran.getTransferData(DataFlavor.stringFlavor); txt.replaceRange(sel,txt.getSelectionStart(),txt.getSelectionEnd()); }catch(Exception e){ System.out.println("not starting flavor"); } } } class Win extends WindowAdapter { public void windowClosing(WindowEvent we) { ConfirmDialog cd=new ConfirmDialog(); if(!b) { System.exit(0); } } } class ConfirmDialog extends JPanel { public ConfirmDialog() { int result; result=JOptionPane.showConfirmDialog(this,fn+" not saved do you want to save"/*,"Message Box",JOptionPane.QUESTION_MESSAGE*/); switch(result) { case JOptionPane.YES_OPTION: FileDialog fd=new FileDialog(TextEditor.this,"Save File",FileDialog.SAVE); fd.setFile(fn); fd.setDirectory(dn);; if(fd.getFile()!=null) { filename=fd.getDirectory()+fd.getFile(); setTitle(filename); writeFile(); txt.requestFocus(); } System.out.println("Yes button pressed"); break; case JOptionPane.NO_OPTION: dispose(); System.exit(0); System.out.println("NO button pressed"); break; case JOptionPane.CANCEL_OPTION: setVisible(true); //b=false; repaint(); System.out.println("Cancel button pressed"); break; case JOptionPane.CLOSED_OPTION: System.out.println("Closed button pressed"); break; } } } class Size implements ActionListener { public void actionPerformed(ActionEvent e) { int style=f.getStyle(); String w=e.getActionCommand(); if(w=="10") { f= new Font("Courier",style,10); txt.setFont(f); fsize=f.getSize(); repaint(); } if(w=="12") { f= new Font("Courier",style,12); fsize=f.getSize(); txt.setFont(f); repaint(); } if(w=="14") { f= new Font("Courier",style,14); fsize=f.getSize(); txt.setFont(f); repaint(); } if(w=="16") { f= new Font("Courier",style,16); txt. setFont(f); fsize=f.getSize(); repaint(); } if(w=="18") { f= new Font("Courier",style,18); txt.setFont(f); fsize=f.getSize(); repaint(); } if(w=="20") { f= new Font("Courier",style,20); txt.setFont(f); fsize=f.getSize(); repaint(); } if(w=="22") { f= new Font("Courier",style,22); txt.setFont(f); fsize=f.getSize(); repaint(); } if(w=="24") { f= new Font("Courier",style,24); txt.setFont(f); fsize=f.getSize(); repaint(); } if(w=="26") { f= new Font("Courier",style,26); txt.setFont(f); fsize=f.getSize(); repaint(); } if(w=="28") { f= new Font("Courier",style,28); txt.setFont(f); fsize=f.getSize(); repaint(); } } } class FM extends Applet implements ActionListener { public void actionPerformed(ActionEvent e) { String b=e.getActionCommand(); if(b=="Bold") { f= new Font("Courier",Font.BOLD,fsize); style=f.getStyle(); txt.setFont(f); } if(b=="Plain") { f= new Font("Courier",Font.PLAIN,fsize); style=f.getStyle(); txt.setFont(f); } if(b=="Italic") { f= new Font("Courier",Font.ITALIC,fsize); txt.setFont(f); } repaint(); } } class Type implements ActionListener { public void actionPerformed(ActionEvent e) { String lbl=e.getActionCommand(); if(lbl=="TimesRoman") { f=new Font("TimesRoman",style,fsize); txt.setFont(f); } if(lbl=="Courier") { f=new Font("Courier",style,fsize); txt.setFont(f); } if(lbl=="Helvetica") { f=new Font("Helvetica",style,fsize); txt.setFont(f); } if(lbl=="Arial") { f=new Font("Arial",style,fsize); txt.setFont(f); } if(lbl=="Arial Black") { f=new Font("ArialBlack",style,fsize); txt.setFont(f); } if(lbl=="Century") { f=new Font("Century",style,fsize); txt.setFont(f); } repaint(); } } class BC implements ActionListener { public void actionPerformed(ActionEvent e) { st=e.getActionCommand(); JFrame jf=new JFrame("JColorChooser"); colorChooser c=new colorChooser(); c.setSize(400,300); c.setVisible(true); } } class colorChooser extends JFrame { Button ok; JColorChooser jcc; public colorChooser(){ setTitle("JColorChooser"); jcc=new JColorChooser(); JPanel content=(JPanel)getContentPane(); content.setLayout(new BorderLayout()); content.add(jcc,"Center"); ok=new Button("OK"); content.add(ok,"South"); ok.addActionListener(new B()); } class B implements ActionListener { public void actionPerformed(ActionEvent e) { System.out.println("Color Is:"+jcc.getColor().toString()); if(st.equals("Background")) txt.setBackground(jcc.getColor()); if(st.equals("Foreground")) txt.setForeground(jcc.getColor()); setVisible(false); } } } public static void main(String args[]) { Frame fm=new TextEditor(); fm.setSize(800,600); fm.setVisible(true);; } }

Related Source Codes

Script Name Author
Sending mail Using JavaMail to Yahoo and Gmail accounts sai prasad
Simple Program in Java to Implement Multithreading Satish.K
Simple Calculator in Java Using Remote Method Invocation Satish.K
Guest Book Application Using Servlets Satish.K
String Manipulation Using Stringification Satish.K
String Manipulation Using Stringification Satish.K
Moving Ball Application Using Java Beans Satish.K
Rapid Roll game subrahmanyeswararao
student mgm arpan
Sourav Datta
Download Manager Sagar
Address Book in Java Rahul Chouhan
address book using java database connectivity(jdbc-msaccess) shekhar bansal
sun Steganography B.Rajavel
Connecting Java with MS-Access - Inserting data in Aseem


Google Groups Subscribe to SourceCodesWorld - Techies Talk

Free eBook - Interview Questions: Get over 1,000 Interview Questions in an eBook for free when you join JobsAssist. Just click on the button below to join JobsAssist and you will immediately receive the Free eBook with thousands of Interview Questions in an ebook when you join.

New! Click here to Add your Code!

ASP Home | C Home | C++ Home | COBOL Home | Java Home | Pascal Home
Source Codes Home Page


Google Search


Source Codes is a part of Vyom Network.

Vyom Network : Web Hosting | Dedicated Server | Free SMS, GRE, GMAT, MBA | Online Exams | Freshers Jobs | Software Downloads | Interview Questions | Jobs, Discussions | Placement Papers | Free eBooks | Free eBooks | Free Business Info | Interview Questions | Free Tutorials | Arabic, French, German | IAS Preparation | Jokes, Songs, Fun | Free Classifieds | Free Recipes | Free Downloads | Bangalore Info | Tech Solutions | Project Outsourcing, Web Hosting | GATE Preparation | MBA Preparation | SAP Info | Software Testing | Google Logo Maker | Freshers Jobs

Sitemap | Privacy Policy | Terms and Conditions
Copyright ©2003-2017, All Rights Reserved.
Page URL:

Download Yahoo Messenger | Placement Papers | Free SMS | C Interview Questions | C++ Interview Questions | Quick2Host Review