Advertisement
Dr_U

12_Editor

Jan 24th, 2021
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.86 KB | None | 0 0
  1. import java.awt.*;
  2. import javax.imageio.stream.ImageInputStream;
  3. import javax.swing.*;
  4. import java.io.*;
  5. import java.awt.event.*;
  6. import javax.swing.plaf.metal.*;
  7. import javax.swing.text.*;
  8.  
  9. public class Editor extends JFrame implements ActionListener
  10. {
  11.     //Komponen untuk menulis text
  12.     JTextArea Teks;
  13.  
  14.     //Frame pada aplikasi editor
  15.     JFrame Kotak;
  16.  
  17.     //Constructor
  18.  
  19.     Editor()
  20.     {
  21.         //Membuat Frame
  22.         Kotak = new JFrame("Text Editor");
  23.          try{
  24.              // untuk mengatur tampilan
  25.              UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
  26.  
  27.              // Mengatur Tema
  28.              MetalLookAndFeel.setCurrentTheme(new OceanTheme());
  29.          }
  30.          catch (Exception e) {
  31.          }
  32.  
  33.          //Component Text
  34.         Teks = new JTextArea();
  35.  
  36.          //Membuat Menu Bar
  37.         JMenuBar mb = new JMenuBar();
  38.  
  39.         //Membuat Menu File
  40.         JMenu m1 = new JMenu("File");
  41.  
  42.         //Create Menu Item
  43.         JMenuItem mi1 = new JMenuItem("New");
  44.         JMenuItem mi2 = new JMenuItem("Open");
  45.         JMenuItem mi3 = new JMenuItem("Save");
  46.         JMenuItem mi4 = new JMenuItem("Print");
  47.  
  48.         mi1.addActionListener(this);
  49.         mi2.addActionListener(this);
  50.         mi3.addActionListener(this);
  51.         mi4.addActionListener(this);
  52.  
  53.         m1.add(mi1);
  54.         m1.add(mi2);
  55.         m1.add(mi3);
  56.         m1.add(mi4);
  57.  
  58.         //Membuat sebuah menu dalam Kotak Menu
  59.         JMenu m2 = new JMenu("Edit");
  60.  
  61.         //Membuat Menu item di menu edit
  62.         JMenuItem mi5 = new JMenuItem("Cut");
  63.         JMenuItem mi6 = new JMenuItem("Copy");
  64.         JMenuItem mi7 = new JMenuItem("Paste");
  65.  
  66.         m2.add(mi5);
  67.         m2.add(mi6);
  68.         m2.add(mi7);
  69.  
  70.         //Membuat menu item close
  71.         JMenuItem mc = new JMenuItem("Close");
  72.  
  73.         mc.addActionListener(this);
  74.  
  75.         mb.add(m1);
  76.         mb.add(m2);
  77.         mb.add(mc);
  78.  
  79.         Kotak.setJMenuBar(mb);
  80.         Kotak.add(Teks);
  81.         Kotak.setSize(550,550);
  82.         Kotak.show();
  83.  
  84.     }
  85.  
  86.     public void actionPerformed(ActionEvent e)
  87.     {
  88.          String s = e.getActionCommand();
  89.  
  90.         if(s.equals("cut"))
  91.         {
  92.             Teks.cut();
  93.         }
  94.  
  95.         if(s.equals("copy"))
  96.         {
  97.             Teks.copy();
  98.         }
  99.  
  100.         if(s.equals("paste"))
  101.         {
  102.             Teks.paste();
  103.         }
  104.  
  105.         else if (s.equals("Save"))
  106.         {
  107.             // Membuat object ddari JfileChooser Class
  108.             JFileChooser j = new JFileChooser("d:");
  109.             int r = j.showSaveDialog(null);
  110.  
  111.             if (r == JFileChooser.APPROVE_OPTION) {
  112.                 // membuat set label ke tempat yang ingin di save
  113.                 File fi = new File(j.getSelectedFile().getAbsolutePath());
  114.  
  115.                 try {
  116.                     //membuat file writer
  117.                     FileWriter wr = new FileWriter(fi, false);
  118.  
  119.                     //membuat buffered write
  120.  
  121.                     BufferedWriter w = new BufferedWriter(wr);
  122.  
  123.                     //write
  124.                     w.write(Teks.getText());
  125.  
  126.                     w.flush();
  127.                     w.close();
  128.                 }
  129.                 catch (Exception evt)
  130.                 {
  131.                     JOptionPane.showMessageDialog(Kotak,evt.getMessage());
  132.                 }
  133.             }
  134.         }
  135.         else if(s.equals("Open"))
  136.              {
  137.                  JFileChooser j = new JFileChooser();
  138.  
  139.                  int r = j.showOpenDialog(null);
  140.  
  141.                  if(r == JFileChooser.APPROVE_OPTION)
  142.                  {
  143.                      File fi = new File(j.getSelectedFile().getAbsolutePath());
  144.  
  145.                      try{
  146.                          //String
  147.  
  148.                          String s1 = "" ,sl ="";
  149.  
  150.                          FileReader fr = new FileReader(fi);
  151.  
  152.                          BufferedReader br = new BufferedReader(fr);
  153.  
  154.                          sl = br.readLine();
  155.  
  156.                          while ((s1 = br.readLine()) != null)
  157.                          {
  158.                              sl = sl + "\n" + s1;
  159.                          }
  160.                          
  161.                          Teks.setText(sl);
  162.                      }
  163.                      catch (Exception evt)
  164.                      {
  165.                          JOptionPane.showMessageDialog(Kotak,"user telah membatalkan operasi");
  166.                      }
  167.  
  168.                  }
  169.  
  170.                  else if (s.equals("New"))
  171.                  {
  172.                      Teks.setText("");
  173.                  }
  174.                  else if (s.equals("Close"))
  175.                  {
  176.                      Kotak.setVisible(false);
  177.                  }
  178.              }
  179.             }
  180.              // Class Utama
  181.  
  182.     public static void main(String args[])
  183.     {
  184.                     Editor e = new Editor();
  185.     }
  186. }
  187.    
  188.        
  189.  
  190.  
  191.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement