Java program is given below
Explanation:
JavaPadGUI.java
package javapad.gui;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class JavaPadGUI extends JFrame implements ActionListener{
 //constants
 private static final String TITLE = "Macrosoft JavaPad XP";
 private static final String SLOGAN = "Macrosoft: Resistance is futile";
Â
 //button names
 private static final String NEW = "New";
 private static final String LOAD = "Load";
 private static final String SAVE = "Save";
 private static final String QUIT = "Quit";
Â
 private static final String FILENAME = "hardcode.txt";
 //messages
Â
 private static final String QUIT_MSG = "Quitting, Save?";
 private static final String LOAD_ERR = "Could not access file " + FILENAME;
Â
Â
 //fields
 private JTextArea txtContent;
 private JButton butNew, butLoad, butSave, butQuit;
Â
 public JavaPadGUI()
 {
   super(TITLE);
   createUI();
   setSize(new Dimension(400, 300));
   setDefaultCloseOperation(EXIT_ON_CLOSE);
    Â
 }
Â
 private void createUI()
 {
   Container c = getContentPane();
   c.setLayout(new BorderLayout(30,30));
  Â
   //create the buttons panel
   JPanel butPanel = new JPanel();
   butPanel.add(butNew = new JButton(NEW));
   butPanel.add(butLoad = new JButton(LOAD));
   butPanel.add(butSave = new JButton(SAVE));
   butPanel.add(butQuit = new JButton(QUIT));
  Â
   //set command names for the buttons, these will be when button is clicked
   butNew.setActionCommand(NEW);
   butLoad.setActionCommand(LOAD);
   butSave.setActionCommand(SAVE);
   butQuit.setActionCommand(QUIT);
  Â
   JPanel sloganPanel = new JPanel();
   sloganPanel.add(new JLabel(SLOGAN));
  Â
   //create textarea with scrollbar
   txtContent = new JTextArea(15, 25);
   txtContent.setLineWrap(true);
    Â
   JScrollPane scroll = new JScrollPane(txtContent);
  Â
   //now add all components
   c.add(butPanel, BorderLayout.NORTH);
   c.add(scroll, BorderLayout.CENTER);
   c.add(sloganPanel, BorderLayout.SOUTH);
  Â
  Â
   //set the actionlistner to buttons to handle button click event
   butNew.addActionListener(this);
   butLoad.addActionListener(this);
   butSave.addActionListener(this);
   butQuit.addActionListener(this);
  Â
 }
 public void actionPerformed(ActionEvent e)
 {
   String cmd = e.getActionCommand();
   if(cmd.equals(NEW))
     txtContent.setText("");
   else if (cmd.equals(LOAD))
     load();
   else if(cmd.equals(SAVE))
     save();
   else if (cmd.equals(QUIT))
     quit();
 }
 private void quit()
 {
   int option = JOptionPane.showConfirmDialog(this, QUIT_MSG);
   if(option == JOptionPane.YES_OPTION)
   {
     save();
   }
  Â
   System.exit(0);
 }
Â
 private void save()
 {
   try {
     PrintWriter w = new PrintWriter(new File(FILENAME));
     w.write(txtContent.getText());
     w.close();
   } catch (FileNotFoundException e) {
     JOptionPane.showMessageDialog(this,"I/O Error", LOAD_ERR, JOptionPane.ERROR_MESSAGE);
   }
      Â
 }
 private void load()
 {
   try {
     Scanner s = new Scanner(new File(FILENAME));
     String str = "";
     while(s.hasNextLine())
       str += s.nextLine();
     txtContent.setText(str);
     s.close();
   } catch (FileNotFoundException e) {
     JOptionPane.showMessageDialog(this, LOAD_ERR, "I/O Error",JOptionPane.ERROR_MESSAGE);
   }
  Â
 }
}
RunJavaPad.java
package javapad;
import javapad.gui.JavaPadGUI;
public class RunJavaPad {
 public static void main(String[] args) {
   JavaPadGUI gui = new JavaPadGUI();
   gui.setVisible(true);
 }
}