Java Notepad


import javax.swing.*;
import java.awt.event.*;
import java.awt.FileDialog;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;

public class App implements ActionListener {
    JFrame window;
    JTextArea textArea;
    JScrollPane scrollpane;
    JMenuBar menuBar;
    JMenu menuFile, menuEdit, menuFormat, menuColor;
    JMenuItem fileNew, fileOpen, fileSave, fileSavaAs, fileExit;
    FunctionFile file = new FunctionFile(this);

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

    App() {
        createWindow();
        createTextArea();
        createMenuBar();
        window.setVisible(true);
    }

    public void createWindow() {
        window = new JFrame("Notepad");
        window.setSize(600, 400);
        window.setLocationRelativeTo(null);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    public void createTextArea() {
        textArea = new JTextArea();
        scrollpane = new JScrollPane(textArea, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scrollpane.setBorder(BorderFactory.createEmptyBorder());
        window.add(scrollpane);
    }

    public void createMenuBar() {
        menuBar = new JMenuBar();
        menuFile = new JMenu("File");
        createFileMenu();
        menuBar.add(menuFile);
        menuEdit = new JMenu("Edit");
        menuBar.add(menuEdit);
        menuFormat = new JMenu("Format");
        menuBar.add(menuFormat);
        menuColor = new JMenu("Color");
        menuBar.add(menuColor);

        window.setJMenuBar(menuBar);
    }

    public void createFileMenu() {
        fileNew = new JMenuItem("New");
        menuFile.add(fileNew);
        fileNew.addActionListener(this);
        fileNew.setActionCommand("New");

        fileOpen = new JMenuItem("Open");
        menuFile.add(fileOpen);
        fileOpen.addActionListener(this);
        fileOpen.setActionCommand("Open");

        fileSave = new JMenuItem("Save");
        menuFile.add(fileSave);
        fileSave.addActionListener(this);
        fileSave.setActionCommand("Save");

        fileSavaAs = new JMenuItem("Save As");
        menuFile.add(fileSavaAs);
        fileSavaAs.addActionListener(this);
        fileSavaAs.setActionCommand("SaveAs");

        fileExit = new JMenuItem("Exit");

        menuFile.add(fileExit);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String command = e.getActionCommand();

        switch (command) {
        case "New":
            file.newFile();
            break;
        case "Open":
            file.openFile();
            break;
        case "Save":
            file.saveFile();
            break;
        case "SaveAs":
            file.saveAsFile();
            break;

        }

    }
}
class FunctionFile {
    App app;
    String fileName;
    String fileAddress;

    FunctionFile(App app) {
        this.app = app;
    }

    public void newFile() {
        app.textArea.setText("");
        app.window.setTitle("New");
        fileAddress = null;
        fileName = null;

    }

    public void openFile() {
        FileDialog fd = new FileDialog(app.window, "Open", FileDialog.LOAD);
        fd.setVisible(true);
        if (fd.getFile() != null) {
            fileName = fd.getFile();
            fileAddress = fd.getDirectory();
            app.window.setTitle(fileName);
        }

        try {
            BufferedReader br = new BufferedReader(new FileReader(fileAddress + fileName));
            app.textArea.setText("");
            String line = null;
            while ((line = br.readLine()) != null) {
                app.textArea.append(line + "\n");
            }
            br.close();
        } catch (Exception e) {
            System.out.println("file not opened");

        }
    }

    public void saveFile() {
        if (fileName == null) {
            saveAsFile();
        } else {
            try {
                FileWriter fw = new FileWriter(fileAddress + fileName);
                fw.write(app.textArea.getText());
                app.window.setTitle(fileName);
                fw.close();

            } catch (Exception e) {
                System.out.println("Something Went Wrong");
            }
        }
    }

    public void saveAsFile() {
        FileDialog fd = new FileDialog(app.window, "Save", FileDialog.SAVE);
        fd.setVisible(true);
        if (fd.getFile() != null) {
            fileName = fd.getFile();
            fileAddress = fd.getDirectory();
            app.window.setTitle(fileName);
        }

        try {
            FileWriter fw = new FileWriter(fileAddress + fileName);
            fw.write(app.textArea.getText());
            fw.close();
        } catch (Exception e) {
            System.out.println("Something Went Wrong");
        }
    }
}

 

Post a Comment

0 Comments