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");
}
}
}
0 Comments