Introduction
To build a Notepad in Java we require basic knowledge of java and file operations. Java provides default packages such as Abstract Window Toolkit (AWT) & Swing to create a user interface (UI) for desktop applications.
The notepad project we are going to build is a desktop application just like the notepad or text editor we usually see on our desktop. Some of the features of Notepad in Java are Menu Bar for Creating a new file, Edit, View, and saving a file.
We need Eclipse or NetBeans to implement this project. Create a new project named Notepad, add a new package with the same name Notepad, and paste the following code into the file Notepad.java.
Code for Notepad in Java
import java.io.*; import java.awt.datatransfer.*; import java.util.*; import javax.swing.*; import java.lang.*; import java.awt.*; import java.awt.event.*; public class Notepad extends JFrame implements ActionListener, WindowListener { File fnameContainer; JTextArea jta =new JTextArea(); public void windowDeactivated(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowClosing(WindowEvent e) { Exiting(); } public void windowOpened(WindowEvent e){}vm public void Exiting() {System.exit(0);} public void EditFile(String fname) throws IOException { BufferedReader d=new BufferedReader(new InputStreamReader(new FileInputStream(fname))); String s; jta.setText(""); setCursor(new Cursor(Cursor.WAIT_CURSOR)); while((s=d.readLine())!= null) { jta.setText(jta.getText()+s+"\r\n"); } setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); d.close(); } public void createMenuItem(JMenu jm,String txt){ JMenuItem jmi=new JMenuItem(txt); jmi.addActionListener(this); jm.add(jmi); } public void SaveFileAs(String fname) throws IOException { setCursor(new Cursor(Cursor.WAIT_CURSOR)); DataOutputStream dos=new DataOutputStream(new FileOutputStream(fname)); dos.writeBytes(jta.getText()); dos.close(); setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); } public void actionPerformed(ActionEvent e){ JFileChooser jfc=new JFileChooser(); if(e.getActionCommand().equals("New")){ this.setTitle("Untitled.txt - Notepad"); jta.setText(""); fnameContainer=null; } else if(e.getActionCommand().equals("Open")){ int ret=jfc.showDialog(null,"Open"); if(ret == JFileChooser.APPROVE_OPTION) { try{ File fyl=jfc.getSelectedFile(); OpenFile(fyl.getAbsolutePath()); this.setTitle(fyl.getName()+ " - Notepad"); fnameContainer=fyl; } catch(IOException ers){} } } else if(e.getActionCommand().equals("Save")){ if(fnameContainer != null){ jfc.setCurrentDirectory(fnameContainer); jfc.setSelectedFile(fnameContainer); } else { jfc.setSelectedFile(new File("Untitled.txt")); } int ret=jfc.showSaveDialog(null); if(ret == JFileChooser.APPROVE_OPTION){ try{ File fyl=jfc.getSelectedFile(); SaveFile(fyl.getAbsolutePath()); this.setTitle(fyl.getName()+ " - Notepad"); fnameContainer=fyl; } catch(Exception ers2){} } } else if(e.getActionCommand().equals("Exit")){ Exiting(); } else if(e.getActionCommand().equals("Copy")){ jta.copy(); } else if(e.getActionCommand().equals("Paste")){ jta.paste(); } else if(e.getActionCommand().equals("About Notepad")){ JOptionPane.showMessageDialog(this,"","Notepad",JOptionPane.INFORMATION_MESSAGE); } else if(e.getActionCommand().equals("Cut")){ jta.cut(); } } public void OpenFile(String fname) throws IOException { BufferedReader d=new BufferedReader(new InputStreamReader(new FileInputStream(fname))); String s; jta.setText(""); setCursor(new Cursor(Cursor.WAIT_CURSOR)); while((s=d.readLine())!= null) { jta.setText(jta.getText()+s+"\r\n"); } setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); d.close(); } public void SaveFile(String fname) throws IOException { setCursor(new Cursor(Cursor.WAIT_CURSOR)); DataOutputStream dos=new DataOutputStream(new FileOutputStream(fname)); dos.writeBytes(jta.getText()); dos.close(); setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); } public static void main (String[] args) { Notepad notp=new Notepad(); } public Notepad(){ Font fnt=new Font("Arial",Font.PLAIN,15); Container con=getContentPane(); JMenuBar jmb=new JMenuBar(); JMenu jmfile = new JMenu("File"); JMenu jmedit = new JMenu("Edit"); JMenu jmhelp = new JMenu("Help"); con.setLayout(new BorderLayout()); JScrollPane sbrText = new JScrollPane(jta); sbrText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); sbrText.setVisible(true); jta.setFont(fnt); jta.setLineWrap(true); jta.setWrapStyleWord(true); con.add(sbrText); createMenuItem(jmfile,"New"); createMenuItem(jmfile,"Open"); createMenuItem(jmfile,"Save"); jmfile.addSeparator(); createMenuItem(jmfile,"Exit"); createMenuItem(jmedit,"Cut"); createMenuItem(jmedit,"Copy"); createMenuItem(jmedit,"Paste"); createMenuItem(jmhelp,"About Notepad"); jmb.add(jmfile); jmb.add(jmedit); jmb.add(jmhelp); setJMenuBar(jmb); addWindowListener(this); setSize(500,500); setTitle("Untitled.txt - Notepad"); setVisible(true); } }
Output for Notepad in java:
Image output:
Video output:
Thank you for visiting our website.
Also Read:
- Dino Game in Java
- Java Games Code | Copy And Paste
- Supply Chain Management System in Java
- Survey Management System In Java
- Phone Book in Java
- Email Application in Java
- Inventory Management System Project in Java
- Blood Bank Management System Project in Java
- Electricity Bill Management System Project in Java
- CGPA Calculator App In Java
- Chat Application in Java
- 100+ Java Projects for Beginners 2023
- Airline Reservation System Project in Java
- Password and Notes Manager in Java
- GUI Number Guessing Game in Java
- How to create Notepad in Java?
- Memory Game in Java
- Simple Car Race Game in Java
- ATM program in Java
- Drawing Application In Java
- Tetris Game in Java
- Pong Game in Java
- Hospital Management System Project in Java
- Ludo Game in Java
- Restaurant Management System Project in Java
- Flappy Bird Game in Java
- ATM Simulator In Java
- Brick Breaker Game in Java
- Best Java Roadmap for Beginners 2023
- Snake Game in Java