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..!!
Ank says
Do we paste the whole code from before imports in that class or is it something else? Because when i pasted the whole code in the class Balls there were too many errors to ignore 😀
ProjectsGeek says
Just create a class name Texteditor in Eclipse or Netbeans and then paste paste this code inside that class.
jannat says
how can i download this project
ProjectsGeek says
You can download download this project, But you can copy the source code to create a text editor project using visual studio 6.0.
Venkatesh says
Superb…good effort… cheers… 🙂
Swagatika Sahoo says
Please send me the pdf Documents of Text editor Mini project .
ProjectsGeek says
There is no doc for this project only source code is available.
vivek says
eclipse shows error in each for loop
ProjectsGeek says
Vivek please post the complete error, SO that we can help you in your code.