Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import javax.swing.*;
- import java.io.*;
- import java.awt.event.*;
- import javax.swing.plaf.metal.*;
- import javax.swing.text.*;
- public class TextEditor extends JFrame implements ActionListener
- {
- // Komponen text
- JTextArea t;
- // Frame
- JFrame f;
- // Konstruktor
- TextEditor()
- {
- // Membuat frame aplikasi
- f = new JFrame("Text Editor");
- try
- {
- // Menggunakan metal look and feel
- UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
- // Menggunakan tema Ocean
- MetalLookAndFeel.setCurrentTheme(new OceanTheme());
- }
- catch (Exception e)
- {
- }
- // Membuat text area
- t = new JTextArea();
- // Membuat menubar
- JMenuBar mb = new JMenuBar();
- // Membuat menu File di dalam menubar
- JMenu m1 = new JMenu("File");
- // Di dalam menu File terdapat beberapa menu item
- JMenuItem mi1 = new JMenuItem("New");
- JMenuItem mi2 = new JMenuItem("Open");
- JMenuItem mi3 = new JMenuItem("Save");
- JMenuItem mi4 = new JMenuItem("Print");
- // Menambahkan action listener
- mi1.addActionListener(this);
- mi2.addActionListener(this);
- mi3.addActionListener(this);
- mi4.addActionListener(this);
- // Menambahkan menu-menu item ke menu File
- m1.add(mi1);
- m1.add(mi2);
- m1.add(mi3);
- m1.add(mi4);
- // Membuat menu Edit di dalam menubar
- JMenu m2 = new JMenu("Edit");
- // Di dalam menu Edit terdapat beberapa menu item
- JMenuItem mi5 = new JMenuItem("Cut");
- JMenuItem mi6 = new JMenuItem("Copy");
- JMenuItem mi7 = new JMenuItem("Paste");
- // Menambahkan action listener
- mi5.addActionListener(this);
- mi6.addActionListener(this);
- mi7.addActionListener(this);
- // Menambahkan menu-menu item ke menu Edit
- m2.add(mi5);
- m2.add(mi6);
- m2.add(mi7);
- // Membuat menu Close di dalam menubar
- JMenuItem mc = new JMenuItem("Close");
- // Menambahkan action listener
- mc.addActionListener(this);
- // Menambahkan menu File, Edit, Close ke menubar
- mb.add(m1);
- mb.add(m2);
- mb.add(mc);
- f.setJMenuBar(mb);
- f.add(t);
- f.setSize(550,550);
- f.show();
- // Teks akan berpindah ke baris berikutnya apabila mencapai batas text area
- t.setLineWrap(true);
- // Mengatur model penulisan kata apabila baris teks melampaui text area
- t.setWrapStyleWord(true);
- // Shortcut perintah menu
- mi1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK)); // New
- mi2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK)); // Open
- mi3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK)); // Save
- mi4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK)); // Print
- mi5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK)); // Cut
- mi6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK)); // Copy
- mi7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK)); // Paste
- }
- // Jika perintah menu dijalankan oleh user
- public void actionPerformed(ActionEvent e)
- {
- String s = e.getActionCommand();
- if (s.equals("Cut"))
- {
- t.cut();
- }
- else if (s.equals("Copy"))
- {
- t.copy();
- }
- else if (s.equals("Paste"))
- {
- t.paste();
- }
- else if (s.equals("Save"))
- {
- // Membuat object class JFileChooser
- JFileChooser j = new JFileChooser("f:");
- // Menggunakan fungsi showsSaveDialog untuk menampilkan menu penyimpanan.
- int r = j.showSaveDialog(null);
- if (r == JFileChooser.APPROVE_OPTION)
- {
- // Mengatur label ke jalur directory yang telah dipilih
- File fi = new File(j.getSelectedFile().getAbsolutePath());
- try
- {
- // Membuat file writer
- FileWriter wr = new FileWriter(fi, false);
- // Membuat buffered writer untuk menulis
- BufferedWriter w = new BufferedWriter(wr);
- // Untuk menulis
- w.write(t.getText());
- w.flush();
- w.close();
- }
- catch (Exception evt)
- {
- JOptionPane.showMessageDialog(f, evt.getMessage());
- }
- }
- // Jika user batal melakukan perintah Save
- else
- {
- JOptionPane.showMessageDialog(f, "User cancelled the operation.");
- }
- }
- else if (s.equals("Print"))
- {
- try
- {
- // Print file
- t.print();
- }
- catch (Exception evt)
- {
- JOptionPane.showMessageDialog(f, evt.getMessage());
- }
- }
- else if (s.equals("Open"))
- {
- // Membuat object class JFileChooser
- JFileChooser j = new JFileChooser("f:");
- // Menggunakan fungsi showsSaveDialog untuk menampilkan men
- int r = j.showOpenDialog(null);
- // Jika user select sebuah file
- if (r == JFileChooser.APPROVE_OPTION)
- {
- // Mengatur label ke jalur directory yang telah dipilih
- File fi = new File(j.getSelectedFile().getAbsolutePath());
- try
- {
- // String
- String s1 = "", sl = "";
- // File reader
- FileReader fr = new FileReader(fi);
- // Buffered reader
- BufferedReader br = new BufferedReader(fr);
- // Inisialisasi sl
- sl = br.readLine();
- // Ambil inputan dari file
- while ((s1 = br.readLine()) != null)
- {
- sl = sl + "\n" + s1;
- }
- // Mengatur text
- t.setText(sl);
- }
- catch (Exception evt)
- {
- JOptionPane.showMessageDialog(f, evt.getMessage());
- }
- }
- // Jika user batal melakukan perintah Open
- else
- {
- JOptionPane.showMessageDialog(f, "User cancelled the operation.");
- }
- }
- else if (s.equals("New"))
- {
- t.setText("");
- }
- else if (s.equals("Close"))
- {
- f.setVisible(false);
- }
- }
- // Class main
- public static void main(String args[])
- {
- TextEditor te = new TextEditor();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement