COME 2 CODE
Learn by Yourself

Notepad

Hello friends, we are going to make a simple notepad in this project. Open your IntelliJ or any other IDE and create a new Project. Now, name this project whatever you likes and go to Main.java file.

Now, write the following code in Main.java

Main.java :

import javax.swing.*;


public class Main {

  public static void main(String[] args) {
    new Notepad();
  }
}

Now, go to Projects tab.
Right Click on src folder, go to New and Click on JAVA Class.
Name the new JAVA Class as Notepad.java
Write the following code in Notepad.java.

Notepad.java :

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;


public class Notepad extends JPanel {
  JFrame frame = new JFrame();
  JTextArea textArea = new JTextArea(23,23);
  JScrollPane jScrollPane = new JScrollPane(textArea);
  JPanel container;
  JMenuBar menuBar = new JMenuBar();
  JMenu file = new JMenu("File");
  JMenuItem newFile = new JMenuItem("New");
  JMenuItem newWindow = new JMenuItem("New Window");
  JMenuItem openFile = new JMenuItem("Open");
  JMenuItem saveFile = new JMenuItem("Save");
  JMenuItem exit = new JMenuItem("Exit");
  JMenu help = new JMenu("Help");

  public Notepad() {
    frame.setBounds(100, 100, 600, 600);
    frame.setTitle("My Notepad");

    container = new JPanel();
    container.setLayout(new BoxLayout(container, BoxLayout.Y_AXIS));

    menuBar.add(file);

    file.add(newFile);
    newFile.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        textArea.setText("Welcome to my Notepad.");
      }
    });

    file.add(newWindow);
    newWindow.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        new Notepad();
      }
    });

    file.add(openFile);
    openFile.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        JFileChooser fileChooser = new JFileChooser("c:");

        int i = fileChooser.showOpenDialog(null);

        if (i == JFileChooser.APPROVE_OPTION) {
          File file = new File(fileChooser.getSelectedFile().getAbsolutePath());

          try {
            String str = "", sline = "";

            FileReader fileReader = new FileReader(file);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            sline = bufferedReader.readLine();
            while ((str = bufferedReader.readLine()) != null) {
              sline = sline + "\n" + str;
            }
            textArea.setText(sline);
          } catch (Exception ev) {
            JOptionPane.showMessageDialog(frame, ev.getMessage());
          }
        }
      }
    });

    file.add(saveFile);
    saveFile.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        JFileChooser fileChooser = new JFileChooser("c:");
        int i = fileChooser.showSaveDialog(null);
        if (i == JFileChooser.APPROVE_OPTION) {
          File file = new File(fileChooser.getSelectedFile().getAbsolutePath());

          try {
            FileWriter fileWriter = new FileWriter(file, false);
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

            bufferedWriter.write(textArea.getText());
            bufferedWriter.flush();
            bufferedWriter.close();
          } catch (Exception ex) {
            JOptionPane.showMessageDialog(frame, ex.getMessage());
          }
        }
      }
    });

    file.add(exit);
    exit.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        frame.setVisible(false);
      }
    });
    menuBar.add(help);

    menuBar.setLayout(new FlowLayout(FlowLayout.LEFT));
    container.add(menuBar);
    textArea.setFont(new Font("Serif", Font.ITALIC, 16));
    container.add(jScrollPane);

    frame.setContentPane(container);
    frame.setVisible(true);
  }
}

Other JAVA projects :
Ball Game using JAVA
Simple Clock using JAVA
Chat Application using JAVA
Bouncing Ball using JAVA

QUICK LINKS :