Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Class utama dari aplikasi Notepad
- *
- * @author Andika Nugrahanto
- * @version 28/12/2020
- */
- 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(); // Membuat MenuBar
- private Menu file = new Menu(); // Membuat menu File
- private MenuItem newFile = new MenuItem(); // Opsi New
- private MenuItem openFile = new MenuItem(); // Opsi Open
- private MenuItem saveFile = new MenuItem(); // Opsi Save
- private MenuItem close = new MenuItem(); // Opsi Close
- public Notepad() {
- this.setSize(1280, 720); // Set ukuran Notepad
- this.setTitle("Java Notepad"); // Set Nama aplikasi
- setDefaultCloseOperation(EXIT_ON_CLOSE); // Set operasi penutupan aplikasi
- this.textArea.setFont(new Font("Century Gothic", Font.BOLD, 12)); // Set font default di TextArea
- this.getContentPane().setLayout(new BorderLayout());
- this.getContentPane().add(textArea);
- // Menambah menu bar ke GUI
- this.setMenuBar(this.menuBar);
- this.menuBar.add(this.file);
- this.file.setLabel("File");
- //Opsi New
- this.newFile.setLabel("New"); //label opsi
- this.newFile.addActionListener(this); //action listener supaya tahu ketika diklik
- this.newFile.setShortcut(new MenuShortcut(KeyEvent.VK_N, false)); // Shortcut ctrl + n
- this.file.add(this.newFile); // menambahkan ke menu "File"
- //Opsi Open
- this.openFile.setLabel("Open");
- this.openFile.addActionListener(this);
- this.openFile.setShortcut(new MenuShortcut(KeyEvent.VK_O, false)); // Shortcut ctrl + o
- this.file.add(this.openFile);
- //Opsi Save
- this.saveFile.setLabel("Save");
- this.saveFile.addActionListener(this);
- this.saveFile.setShortcut(new MenuShortcut(KeyEvent.VK_S, false)); // Shortcut ctrl + s
- this.file.add(this.saveFile);
- //Opsi Close
- this.close.setLabel("Close");
- this.close.setShortcut(new MenuShortcut(KeyEvent.VK_F4, false)); // Shortcut ctrl + F4
- this.close.addActionListener(this);
- this.file.add(this.close);
- }
- public void actionPerformed (ActionEvent e) {
- // Jika memilih Opsi Close
- if (e.getSource() == this.close)
- this.dispose(); // Dispose semua resource dan tutup aplikasi
- // Jika memilih opsi Open
- else if (e.getSource() == this.openFile) {
- JFileChooser open = new JFileChooser(); // Membuka file chooser
- int option = open.showOpenDialog(this); // Untuk mendapatkan opsi yang dipilih user (approve atau cancel)
- // Jika user klik OK, terdapat "APPROVE_OPTION"
- if (option == JFileChooser.APPROVE_OPTION) {
- this.textArea.setText(""); // Clear TextArea kemudian membuka isi File
- try {
- // Membuat Scanner untuk membaca File
- 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());
- }
- }
- }
- // Jika memilih opsi Save
- else if (e.getSource() == this.saveFile) {
- JFileChooser save = new JFileChooser(); // Membuka File Chooser
- 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());
- }
- }
- }
- // Jika memilih opsi New
- else if (e.getSource() == this.newFile) {
- textArea.setText("");
- }
- }
- public static void main(String args[]) {
- Notepad app = new Notepad();
- app.setVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment