/**
* Class notepad yang berisikan seluruh command untuk melaksanakan program notepad
*
* @Muhammad Akmal Joedhiawan
* @05111940000125
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Scanner;
import java.io.*;
public class Notepad extends JFrame implements ActionListener {
private TextArea textArea = new TextArea("", 0,0, TextArea.SCROLLBARS_VERTICAL_ONLY);
private MenuBar menuBar = new MenuBar(); // MenuBar
private Menu file = new Menu();
private MenuItem openFile = new MenuItem(); // opsi open
private MenuItem saveFile = new MenuItem(); // opsi save
private MenuItem close = new MenuItem(); // opsi close
private MenuItem newFile = new MenuItem(); // opsi new
public Notepad() {
this.setSize(800, 600); // ukuran notepad
this.setTitle("Java Notepad");
setDefaultCloseOperation(EXIT_ON_CLOSE);
this.textArea.setFont(new Font("Century Gothic", Font.BOLD, 12));
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(textArea);
// menu bar GUI
this.setMenuBar(this.menuBar);
this.menuBar.add(this.file);
// menu file
this.file.setLabel("File");
// opsi open
this.openFile.setLabel("Open");
this.openFile.addActionListener(this);
this.openFile.setShortcut(new MenuShortcut(KeyEvent.VK_O, false));
this.file.add(this.openFile);
// opsi save
this.saveFile.setLabel("Save");
this.saveFile.addActionListener(this);
this.saveFile.setShortcut(new MenuShortcut(KeyEvent.VK_S, false));
this.file.add(this.saveFile);
// opsi close
this.close.setLabel("Close");
this.close.setShortcut(new MenuShortcut(KeyEvent.VK_F4, false));
this.close.addActionListener(this);
this.file.add(this.close);
// opsi new
this.newFile.setLabel("New");
this.newFile.addActionListener(this);
this.newFile.setShortcut(new MenuShortcut(KeyEvent.VK_N, false));
this.file.add(this.newFile);
}
public void actionPerformed (ActionEvent e) {
if (e.getSource() == this.close)
this.dispose();
else if (e.getSource() == this.openFile) {
JFileChooser open = new JFileChooser();
int option = open.showOpenDialog(this);
if (option == JFileChooser.APPROVE_OPTION) {
this.textArea.setText("");
try {
Scanner scan = new Scanner(new FileReader(open.getSelectedFile().getPath()));
while (scan.hasNext())
this.textArea.append(scan.nextLine() + "\\n");
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
else if (e.getSource() == this.saveFile) {
JFileChooser save = new JFileChooser();
int option = save.showSaveDialog(this);
if (option == JFileChooser.APPROVE_OPTION) {
try {
BufferedWriter out = new BufferedWriter(new FileWriter(save.getSelectedFile().getPath()));
out.write(this.textArea.getText());
out.close();
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
else if (e.getSource() == this.newFile) {
textArea.setText("");
}
}
}