Text Editor in Java Project
Write a Awt application to develop a Text editor in Java . It should implement following functions as menu options or functionality of Text editor .
- New
- Open
- Save
- Save As
- Page Setup
- Exit
- Delete
- Cut
- Copy
- Paste
- Find Next
- Replace
- Go To
- Select All
Text Editor Java |
Program Code for Java Text Editor :
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
//Texteditor class starts here
class Texteditor extends Frame implements ActionListener
{
TextArea ta=new TextArea();
int i,len1,len,pos1;
String str="",s3="",s2="",s4="",s32="",s6="",s7="",s8="",s9="";
String months[]={"January","February","March","April","May","June","July","August","September","October","November","December"};
CheckboxMenuItem chkb=new CheckboxMenuItem("Word Wrap");
public Texteditor()
{
MenuBar mb=new MenuBar();
setLayout(new BorderLayout());
add("Center",ta);
setMenuBar(mb);
Menu m1=new Menu("File");
Menu m2=new Menu("Edit");
Menu m3=new Menu("Tools");
Menu m4=new Menu("Help");
mb.add(m1);
mb.add(m2);
mb.add(m3);
mb.add(m4);
MenuItem mi1[]={
new MenuItem("New"),new MenuItem("Open"),new MenuItem("Save")
,new MenuItem("Save As"),new MenuItem("Page Setup")
,new MenuItem("Print"),new MenuItem("Exit")
};
MenuItem mi2[]={new MenuItem("Delete"),new MenuItem("Cut"),
new MenuItem("Copy"),new MenuItem("Paste"),new MenuItem("Find"),
new MenuItem("Find Next"),new MenuItem("Replace"),
new MenuItem("Go To"),new MenuItem("Select All"),
new MenuItem("Time Stamp")};
MenuItem mi3[]={new MenuItem("Choose Font"),new MenuItem("Compile"),
new MenuItem("Run")};
MenuItem mi4[]={new MenuItem("Help Topics"),
new MenuItem("About Texteditor")};
for(int i=0;i<len1;i++ )="" <br=""> {
m1.add(mi1[i]);
mi1[i].addActionListener(this);
}
for(int i=0;i<len1;i++) {="" <br=""> m2.add(mi2[i]);
mi2[i].addActionListener(this);
}
m3.add(chkb);
chkb.addActionListener(this);
for(int i=0;i<len1;i++ )="" <br=""> {
m3.add(mi3[i]);
mi3[i].addActionListener(this);
}
for(int i=0;i<len1;i++) <br=""> {
m4.add(mi4[i]);
mi4[i].addActionListener(this);
}
MyWindowsAdapter mw=new MyWindowsAdapter(this);
addWindowListener(mw);
setSize(500,500);
setTitle("untitled notepad");
setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
String arg=(String)ae.getActionCommand();
if(arg.equals("New"))
{ dispose();
Texteditor t11=new Texteditor();
t11.setSize(500,500);
t11.setVisible(true);
}
try {
if(arg.equals("Open"))
{
FileDialog fd1=new FileDialog(this,"Select File",FileDialog.LOAD);
fd1.setVisible(true);
String s4="";
s2=fd1.getFile();
s3=fd1.getDirectory();
s32=s3+s2;
File f=new File(s32);
FileInputStream fii=new FileInputStream(f);
len=(int)f.length();
for(int j=0;j<len1;j++ )="" <br=""> {
char s5=(char)fii.read();
s4=s4 + s5;
}
ta.setText(s4);
}
}
catch(IOException e)
{
}
try
{
if(arg.equals("Save As"))
{
FileDialog dialog1=new FileDialog(this,"Save As",FileDialog.SAVE);
dialog1.setVisible(true);
s7=dialog1.getDirectory();
s8=dialog1.getFile();
s9=s7+s8+".txt";
s6=ta.getText();
len1=s6.length();
byte buf[]=s6.getBytes();
File f1=new File(s9);
FileOutputStream fobj1=new FileOutputStream(f1);
for(int k=0;k<len1;k++) <br=""> {
fobj1.write(buf[k]);
}
fobj1.close();
}
this.setTitle(s8 +" Texteditor File");
}
catch(IOException e){}
if(arg.equals("Exit"))
{
System.exit(0);
}
if(arg.equals("Cut"))
{
str=ta.getSelectedText();
i=ta.getText().indexOf(str);
ta.replaceRange(" ",i,i+str.length());
}
if(arg.equals("Copy"))
{
str=ta.getSelectedText();
}
if(arg.equals("Paste"))
{
pos1=ta.getCaretPosition();
ta.insert(str,pos1);
}
if(arg.equals("Delete"))
{
String msg=ta.getSelectedText();
i=ta.getText().indexOf(msg);
ta.replaceRange(" ",i,i+msg.length());
msg="";
}
if(arg.equals("Select All"))
{
String strText=ta.getText();
int strLen=strText.length();
ta.select(0,strLen);
}
if(arg.equals("Time Stamp"))
{
GregorianCalendar gcalendar=new GregorianCalendar();
String h=String.valueOf(gcalendar.get(Calendar.HOUR));
String m=String.valueOf(gcalendar.get(Calendar.MINUTE));
String s=String.valueOf(gcalendar.get(Calendar.SECOND));
String date=String.valueOf(gcalendar.get(Calendar.DATE));
String mon=months[gcalendar.get(Calendar.MONTH)];
String year=String.valueOf(gcalendar.get(Calendar.YEAR));
String hms="Time"+" - "+h+":"+m+":"+s+" Date"+" - "+date+" "+mon+" "+year+" ";
int loc=ta.getCaretPosition();
ta.insert(hms,loc);
}
if(arg.equals("About Texteditor"))
{
AboutDialog d1=new AboutDialog(this,"About Texteditor");
d1.setVisible(true);
setSize(500,500);
}
}//Action pereformed end
public class MyWindowsAdapter extends WindowAdapter
{
Texteditor tt;
public MyWindowsAdapter(Texteditor ttt)
{
tt=ttt;
}
public void windowClosing(WindowEvent we)
{
tt.dispose();
}
}//Inner class winadapter end....
}//End of Texteditor class
public class balls
{ public static void main(String args[])
{
Texteditor to=new Texteditor();
}
}
class AboutDialog extends Dialog implements ActionListener
{
AboutDialog(Frame parent,String title)
{
super(parent,title,false);
this.setResizable(false);
setLayout(new FlowLayout(FlowLayout.LEFT));
setSize(500,300);
}
public void actionPerformed(ActionEvent ae)
{
dispose();
}
}
How to Run this Project :
- Open Eclipse
- New Project
- Add new Class to project
- Paste Code in that class named Balls .
- Run the Project …Enjoy..!!
Narendra says
i am getting 100 errors
could any1 send me clear code
ProjectsGeek says
Please provide us error messages so that we can help you out.
ravindra pratap says
gives “leaking this in constructor” warning in line 43,46,49,52 and 56. need solution asap!!
ProjectsGeek says
Please check the updated code.
gsingh says
https://docs.google.com/document/d/1suuP6C_tAsLok0F0U8s0BqWNA9azRhroBuMAhmCBq-8/edit?usp=sharing
The above link has snapshots of the errors I’m facing, along with the code I used (Directly copied from the one given above).
I use Command Prompt for compilation and execution.
Please help me out on this as soon as possible.
Thanks a ton.