Here’s a simple notepad program in Java that you can use as a starting point:
import java.awt.*; import java.awt.event.*; import java.io.*; public class Notepad extends Frame implements ActionListener { private TextArea textArea; private MenuBar menuBar; private Menu fileMenu; private MenuItem newMenuItem, openMenuItem, saveMenuItem, saveAsMenuItem, exitMenuItem; private File currentFile; public Notepad() { super("Untitled - Notepad"); setSize(800, 600); setLocationRelativeTo(null); textArea = new TextArea(); add(textArea); menuBar = new MenuBar(); fileMenu = new Menu("File"); newMenuItem = new MenuItem("New"); openMenuItem = new MenuItem("Open"); saveMenuItem = new MenuItem("Save"); saveAsMenuItem = new MenuItem("Save As"); exitMenuItem = new MenuItem("Exit"); newMenuItem.addActionListener(this); openMenuItem.addActionListener(this); saveMenuItem.addActionListener(this); saveAsMenuItem.addActionListener(this); exitMenuItem.addActionListener(this); fileMenu.add(newMenuItem); fileMenu.add(openMenuItem); fileMenu.add(saveMenuItem); fileMenu.add(saveAsMenuItem); fileMenu.addSeparator(); fileMenu.add(exitMenuItem); menuBar.add(fileMenu); setMenuBar(menuBar); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { if (textArea.getText().equals("") || currentFile == null) { dispose(); } else { int result = JOptionPane.showConfirmDialog(Notepad.this, "Do you want to save changes?", "Confirm Exit", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); if (result == JOptionPane.YES_OPTION) { saveFile(); dispose(); } else if (result == JOptionPane.NO_OPTION) { dispose(); } } } }); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == newMenuItem) { newFile(); } else if (e.getSource() == openMenuItem) { openFile(); } else if (e.getSource() == saveMenuItem) { saveFile(); } else if (e.getSource() == saveAsMenuItem) { saveAsFile(); } else if (e.getSource() == exitMenuItem) { dispose(); } } private void newFile() { if (textArea.getText().equals("") || currentFile == null) { textArea.setText(""); setTitle("Untitled - Notepad"); currentFile = null; } else { int result = JOptionPane.showConfirmDialog(this, "Do you want to save changes?", "Confirm New", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); if (result == JOptionPane.YES_OPTION) { saveFile(); textArea.setText(""); setTitle("Untitled - Notepad"); currentFile = null; } else if (result == JOptionPane.NO_OPTION) { textArea.setText(""); setTitle("Untitled - Notepad"); currentFile = null; } } } private void openFile() { FileDialog fileDialog = new FileDialog(this, "Open", FileDialog.LOAD); fileDialog.setVisible(true); String directory = fileDialog.getDirectory(); String filename = fileDialog.getFile(); if (filename != null) { currentFile = new File(directory, filename); setTitle(currentFile.getName() + " - Notepad"); try { BufferedReader reader = new BufferedReader(new FileReader(currentFile)); String line; textArea.setText(""); while ((line = reader.readLine()) != null) { textArea.append(line + "\n"); }