Advertisement
lamaulfarid

Text Editor

Jan 24th, 2021
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.74 KB | None | 0 0
  1. import java.awt.*;
  2. import javax.swing.*;
  3. import java.io.*;
  4. import java.awt.event.*;
  5. import javax.swing.plaf.metal.*;
  6. import javax.swing.text.*;
  7.  
  8. public class TextEditor extends JFrame implements ActionListener
  9. {
  10.     // Komponen text
  11.     JTextArea t;
  12.    
  13.     // Frame
  14.     JFrame f;
  15.    
  16.     // Konstruktor
  17.     TextEditor()
  18.     {
  19.         // Membuat frame aplikasi
  20.         f = new JFrame("Text Editor");
  21.        
  22.         try
  23.         {
  24.             // Menggunakan metal look and feel
  25.             UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
  26.            
  27.             // Menggunakan tema Ocean
  28.             MetalLookAndFeel.setCurrentTheme(new OceanTheme());
  29.         }
  30.        
  31.         catch (Exception e)
  32.         {
  33.            
  34.         }
  35.  
  36.         // Membuat text area
  37.         t = new JTextArea();
  38.        
  39.         // Membuat menubar
  40.         JMenuBar mb = new JMenuBar();
  41.        
  42.         // Membuat menu File di dalam menubar
  43.         JMenu m1 = new JMenu("File");
  44.        
  45.         // Di dalam menu File terdapat beberapa menu item
  46.         JMenuItem mi1 = new JMenuItem("New");
  47.         JMenuItem mi2 = new JMenuItem("Open");
  48.         JMenuItem mi3 = new JMenuItem("Save");
  49.         JMenuItem mi4 = new JMenuItem("Print");
  50.        
  51.         // Menambahkan action listener
  52.         mi1.addActionListener(this);
  53.         mi2.addActionListener(this);
  54.         mi3.addActionListener(this);
  55.         mi4.addActionListener(this);
  56.        
  57.         // Menambahkan menu-menu item ke menu File
  58.         m1.add(mi1);
  59.         m1.add(mi2);
  60.         m1.add(mi3);
  61.         m1.add(mi4);
  62.        
  63.         // Membuat menu Edit di dalam menubar
  64.         JMenu m2 = new JMenu("Edit");
  65.        
  66.         // Di dalam menu Edit terdapat beberapa menu item
  67.         JMenuItem mi5 = new JMenuItem("Cut");
  68.         JMenuItem mi6 = new JMenuItem("Copy");
  69.         JMenuItem mi7 = new JMenuItem("Paste");
  70.        
  71.         // Menambahkan action listener
  72.         mi5.addActionListener(this);
  73.         mi6.addActionListener(this);
  74.         mi7.addActionListener(this);
  75.        
  76.         // Menambahkan menu-menu item ke menu Edit
  77.         m2.add(mi5);
  78.         m2.add(mi6);
  79.         m2.add(mi7);
  80.        
  81.         // Membuat menu Close di dalam menubar
  82.         JMenuItem mc = new JMenuItem("Close");
  83.        
  84.         // Menambahkan action listener
  85.         mc.addActionListener(this);
  86.        
  87.         // Menambahkan menu File, Edit, Close ke menubar
  88.         mb.add(m1);
  89.         mb.add(m2);
  90.         mb.add(mc);
  91.        
  92.         f.setJMenuBar(mb);
  93.         f.add(t);
  94.         f.setSize(550,550);
  95.         f.show();
  96.        
  97.         // Teks akan berpindah ke baris berikutnya apabila mencapai batas text area
  98.         t.setLineWrap(true);
  99.        
  100.         // Mengatur model penulisan kata apabila baris teks melampaui text area
  101.         t.setWrapStyleWord(true);
  102.        
  103.         // Shortcut perintah menu
  104.         mi1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK)); // New
  105.         mi2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK)); // Open
  106.         mi3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK)); // Save
  107.         mi4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK)); // Print
  108.         mi5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK)); // Cut
  109.         mi6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK)); // Copy
  110.         mi7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK)); // Paste
  111.     }
  112.    
  113.     // Jika perintah menu dijalankan oleh user
  114.     public void actionPerformed(ActionEvent e)
  115.     {
  116.         String s = e.getActionCommand();
  117.        
  118.         if (s.equals("Cut"))
  119.         {
  120.             t.cut();
  121.         }
  122.        
  123.         else if (s.equals("Copy"))
  124.         {
  125.             t.copy();
  126.         }
  127.        
  128.         else if (s.equals("Paste"))
  129.         {
  130.             t.paste();
  131.         }
  132.        
  133.         else if (s.equals("Save"))
  134.         {
  135.             // Membuat object class JFileChooser
  136.             JFileChooser j = new JFileChooser("f:");
  137.            
  138.             // Menggunakan fungsi showsSaveDialog untuk menampilkan menu penyimpanan.
  139.             int r = j.showSaveDialog(null);
  140.            
  141.             if (r == JFileChooser.APPROVE_OPTION)
  142.             {
  143.                 // Mengatur label ke jalur directory yang telah dipilih
  144.                 File fi = new File(j.getSelectedFile().getAbsolutePath());
  145.                
  146.                 try
  147.                 {
  148.                     // Membuat file writer
  149.                     FileWriter wr = new FileWriter(fi, false);
  150.                    
  151.                     // Membuat buffered writer untuk menulis
  152.                     BufferedWriter w = new BufferedWriter(wr);
  153.                    
  154.                     // Untuk menulis
  155.                     w.write(t.getText());
  156.                    
  157.                     w.flush();
  158.                     w.close();
  159.                 }
  160.                
  161.                 catch (Exception evt)
  162.                 {
  163.                     JOptionPane.showMessageDialog(f, evt.getMessage());
  164.                 }
  165.             }
  166.            
  167.             // Jika user batal melakukan perintah Save
  168.             else
  169.             {
  170.                 JOptionPane.showMessageDialog(f, "User cancelled the operation.");
  171.             }
  172.         }
  173.        
  174.         else if (s.equals("Print"))
  175.         {
  176.             try
  177.             {
  178.                 // Print file
  179.                 t.print();
  180.             }
  181.            
  182.             catch (Exception evt)
  183.             {
  184.                 JOptionPane.showMessageDialog(f, evt.getMessage());
  185.             }
  186.         }
  187.        
  188.         else if (s.equals("Open"))
  189.         {
  190.             // Membuat object class JFileChooser
  191.             JFileChooser j = new JFileChooser("f:");
  192.            
  193.             // Menggunakan fungsi showsSaveDialog untuk menampilkan men
  194.             int r = j.showOpenDialog(null);
  195.            
  196.             // Jika user select sebuah file
  197.             if (r == JFileChooser.APPROVE_OPTION)
  198.             {
  199.                 // Mengatur label ke jalur directory yang telah dipilih
  200.                 File fi = new File(j.getSelectedFile().getAbsolutePath());
  201.                
  202.                 try
  203.                 {
  204.                     // String
  205.                     String s1 = "", sl = "";
  206.                    
  207.                     // File reader
  208.                     FileReader fr = new FileReader(fi);
  209.                    
  210.                     // Buffered reader
  211.                     BufferedReader br = new BufferedReader(fr);
  212.                    
  213.                     // Inisialisasi sl
  214.                     sl = br.readLine();
  215.                    
  216.                     // Ambil inputan dari file
  217.                     while ((s1 = br.readLine()) != null)
  218.                     {
  219.                         sl = sl + "\n" + s1;
  220.                     }
  221.                    
  222.                     // Mengatur text
  223.                     t.setText(sl);
  224.                 }
  225.                
  226.                 catch (Exception evt)
  227.                 {
  228.                     JOptionPane.showMessageDialog(f, evt.getMessage());
  229.                 }
  230.             }
  231.            
  232.             // Jika user batal melakukan perintah Open
  233.             else
  234.             {
  235.                 JOptionPane.showMessageDialog(f, "User cancelled the operation.");
  236.             }
  237.         }
  238.        
  239.         else if (s.equals("New"))
  240.         {
  241.             t.setText("");
  242.         }
  243.        
  244.         else if (s.equals("Close"))
  245.         {
  246.             f.setVisible(false);
  247.         }
  248.     }
  249.    
  250.     // Class main
  251.     public static void main(String args[])
  252.     {
  253.         TextEditor te = new TextEditor();
  254.     }
  255. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement