Mengurutkan Langkah

Menunggu Kabar adalah sesuatu yang memungkinkan menjadi sebuah hal yang terkadang sulit untuk dilupakan, tetpi lakukan aktifitas lainya dengan enjoy maka menunggu itu tidak akan terasa menjadi beban.

Advertisements

Magang Di Hari 3

Pada hari ini sabtu, 25 Januari 2014 melanjutkan materi hari jumat kemarin yaitu mengampu mata kuliah simulasi visual dengan blender pada program bridging,
Hari ini materi yang disampikan yaitu mentekstur object dan dasar animasi untuk menggerakan object.
Katerbatasan waktu untuk mengembangkan ide yang seharusnya urutannya adalah sebagai berikut :

1. Dasar Object
2. Desain Karakter
3. Texture
4. Rigging
5. Animasi

Teknik pembuatan object model dan rigging dilewati tapi langsung ke teknik animasi dengan object dasar yang telah di texture.
Sangat sederhana penyampaian materi blender ini, tetapi mudah mudahan proses selanjutnya terpupuk kreatifitas berdasarkan ide dan gagasan awal serta pembukaan wawasan.

Aktifitas Magang Lagi

Tim 1 dengan anggota
tim1melakukan kembali aktifitas magang pada hari ini Jum’at 24 Januari 2014 dengan aktifitas penyampaian materi adalah Simulasi Visual,

Rangkaian materi yang diberikan yaitu

1. Persentasi mengenai simulasi visual, dan
2. Workshop Instalasi Blender,
Manipulasi tampilan tampak muka, tampak belakang, samping kiri samping kanan, atas, bawah dari sebuah objek.
Skala, perpindahan, dan rotasi objek.
Penambahan objek baru.
Labactivity – Basic 3D
Labactivity – Navigasi dan View
Labactivity – Basic Manipulator
Labactivity – Move & Selection
Labactivity – Membuat Object Kursi

Materi disampaikan dengan aktifitas tutor-sebaya dan sharing pengetahuan, antusiasme peserta terlihat baik, dan semua cukup memahami materi yang disampaikan.

2014-01-24 11.00.54

2014-01-24 11.00.58

2014-01-24 11.01.02

2014-01-24 11.01.08

Aktifitas Magang ITB

Hari ini dapat jadwal menyampaikan materi kuliah di program bridging persiapan D1 FSRD dan STEI, materi kuliah hari ini mencakup
jadwalmagang1adapun tim yang menjadi partner kerjasama yaitu dari TIM 1 magang bandung yang anggotanya sebagai berikut :

tim1

Materi dari TIM1 di sampaikan adalah materi mengenai EDMODO, dan BUKU DIGITAL. Hari ini kita mengajar bagaimana tergabung dalam kelas baru di Kelas Maya dan bagaimana membuat sebuah buku digital dengan format open book. Acara perkuliahan oleh TIM 1 dimulai jam 08.00 – 12.00 kemudian dilanjutkan dengan acara perkualiahan dari dosen FSRD.

Kendala utama yaitu
1. Resource untuk mengoperasikan laptop masih kurang (sumber stop kontak minim, serta akses internet untuk online belum sepenuhnya siap)
2. SDM belum mendapatkan gambaran pola progress yang harus dilakukan sehingga canggung dan kaku diawal menyampaikan perkualiahan masih terjadi.

Kesimpulan
1. Hari ini magang bandung yang direncanakan sukses
2. Kendala teknis dievaluasi dan didiskusikan bersama tim1 dan disampaikan pada ketua kelas untuk diperbaiki pada tim hari berikutnya.
3. Antusiasme peserta sudah mulai terasa hanya dari beberapa peserta masih ada kendala teknis.

Agenda Aktifitas (Toturial/Persentasi/Workshop)

2014-01-21 09.48.57 2014-01-21 09.48.45 2014-01-21 09.48.40

Webcam

Webcam.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package webcam;

// import library
import JImage.JIResizeImage;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Panel;
import java.awt.image.BufferedImage;
import java.beans.Encoder;
import java.io.FileOutputStream;
import java.util.Calendar;
import javax.media.Buffer;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.media.control.FrameGrabbingControl;
import javax.media.format.VideoFormat;
import javax.media.util.BufferToImage;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 *
 * @author Opay
 */

public class Webcam extends javax.swing.JFrame {
    // Tahap 1 Inisalisasi     
    public Buffer buffer = null;
    public BufferToImage bufferimg = null;
    JFileChooser pilihfile;
    public ImagePanel panel = null;
    String lokasisimpan = "E:\\";
    public int nocapture = 0;
    public Player player;
    public Image img = null;
    
    
    /**
     * Creates new form Webcam
     */
    public Webcam() {
        initComponents();
        setTitle("Capture Webcam v.0.0.1");
        // Tahap 4 Panggil method menyalakan kamera
        hidupkan_kamera();
    }
     
    // Tahap 2 Buat Rancangan Ukuran Tampilan
    public class ImagePanel extends Panel {
        public java.awt.Image picture = null;
        public ImagePanel() {            
            setSize(300, 200);
        }

        public void setImage(java.awt.Image img) {
            this.picture = img;
            repaint();
        }
         @Override
        public void paint(Graphics grafik) {
            if (img != null) {
                grafik.drawImage(img, 0, 0, this);
            }
        }
    }
    
    // Tahap 3 Buat method menyalakan kamera, method capture, dan method simpan file
    public void hidupkan_kamera() {
        pilihfile = new JFileChooser();
        panel = new ImagePanel();
        //String mediaCamera = "vfw:Microsoft WDM Image Capture (Win32):0";
        String mediaCamera = "vfw://0";
        layar1.setLayout(new BorderLayout());
        layar2.setLayout(new BorderLayout());

        try {
            MediaLocator mediaLocator = new MediaLocator(mediaCamera);
            player = Manager.createRealizedPlayer(mediaLocator);
            if (player.getVisualComponent() != null) {                
                player.getVisualComponent().setSize(300, 200);                
                layar1.add(player.getVisualComponent());
            }
            layar2.add(panel);
            player.start();

        } catch (Exception e) {
            System.err.println("Salah" + e);
        }
    }

    public void capture() {
        FrameGrabbingControl frmgarcon = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
        buffer = frmgarcon.grabFrame();
        bufferimg = new BufferToImage((VideoFormat) buffer.getFormat());
        img = bufferimg.createImage(buffer);
        //JIResizeImage resize = new JIResizeImage();
        //BufferedImage BI = (BufferedImage) img;
        //java.awt.Image img2 = resize.rescale(BI, 300, 200);
        //panel.setImage(img2);
        // 
        JIResizeImage resize = new JIResizeImage();
        BufferedImage BI = (BufferedImage) img;
        Image img = resize.rescale(BI, 33);
        panel.setImage(img);

        Calendar waktu = Calendar.getInstance();
        int date = (waktu.getTime().getYear() + 1900) * 10000 + (waktu.getTime().getMonth() + 1) * 100 + waktu.getTime().getDate();
        simpanfile(img, lokasisimpan + date + nocapture + ".jpg");
        nocapture++;
    }

    private void simpanfile(java.awt.Image image, String s) {
        BufferedImage bufferedimage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB);
        Graphics2D grafik2d = bufferedimage.createGraphics();
        grafik2d.drawImage(img, null, null);
        FileOutputStream out = null;
        try {
            out = new FileOutputStream(s);
        } catch (java.io.FileNotFoundException ex) {
            ex.printStackTrace();
        }
        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
        JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufferedimage);
        param.setQuality(0.5f, false);
        encoder.setJPEGEncodeParam(param);
        try {
            encoder.encode(bufferedimage);
            out.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        layar1 = new javax.swing.JLabel();
        layar2 = new javax.swing.JLabel();
        Rekam = new javax.swing.JButton();
        Judul = new javax.swing.JLabel();
        Modifikasi = new javax.swing.JLabel();
        Nama = new javax.swing.JLabel();
        Nim = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        layar1.setBackground(new java.awt.Color(255, 255, 255));

        Rekam.setBackground(new java.awt.Color(0, 153, 153));
        Rekam.setText("Capture");
        Rekam.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                RekamActionPerformed(evt);
            }
        });

        Judul.setText("CapCam v.0.0.1");

        Modifikasi.setText("Dimodifikasi Oleh");

        Nama.setText("Taupik Nurhidayat");

        Nim.setText("49013105");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(layar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addComponent(layar2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(Rekam)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(Judul)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(Modifikasi)
                                    .addComponent(Nama)))
                            .addGroup(layout.createSequentialGroup()
                                .addGap(33, 33, 33)
                                .addComponent(Nim)))
                        .addContainerGap(22, Short.MAX_VALUE))))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(layar1, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(layar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(Rekam, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(Judul)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Modifikasi)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Nama)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Nim)
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    // Tahap 5 Buat aksi tombol
    private void RekamActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        capture();
    }                                     

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Webcam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Webcam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Webcam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Webcam.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Webcam().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JLabel Judul;
    private javax.swing.JLabel Modifikasi;
    private javax.swing.JLabel Nama;
    private javax.swing.JLabel Nim;
    private javax.swing.JButton Rekam;
    private javax.swing.JLabel layar1;
    private javax.swing.JLabel layar2;
    // End of variables declaration                   
  
}

Library yang digunakan
1. JImage_.jar
2. jmf.jar
3. rt.jar

Direktori Simpan
webcam

Video Aplikasinya

Chat

Chat.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package chat;

// import 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;


/**
 *
 * @author Opay
 */

public class Chat extends javax.swing.JFrame implements Runnable {
    
    // Inisialisasi
    Socket klien;
    ServerSocket server;
    BufferedReader server_reader, klien_reader;
    BufferedWriter server_writer, klien_writer;
    
    /**
     * Creates new form Chat
     */
    public Chat() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked") 
    
    //0. Sesi Koneksi / Session Connection
    private void koneksi_klien() {
        try {
            String ip = JOptionPane.showInputDialog("Masukan Ip Address");
            klien = new Socket(ip, 5001);
            Pilihan.setEnabled(false);
            tmbON.setText("Disconnect");
            server_reader = new BufferedReader(new InputStreamReader(klien.getInputStream()));
            server_writer = new BufferedWriter(new OutputStreamWriter(klien.getOutputStream()));
        } catch (IOException ex) {
            System.out.println("Accept Failed");
            System.exit(-1);
        }
    }

    private void koneksi_server() {
        try {
            try {
                try {
                    server = new ServerSocket(5001);
                    this.setTitle("Please Wait...");
                } catch (IOException ex) {
                    System.out.println("Could not listen");
                    System.exit(-1);
                }

                klien = server.accept();
                this.setTitle("Connected" + klien.getInetAddress());
            } catch (IOException ex) {
                System.out.println("Accept Failed");
                System.exit(-1);
            }

            server_reader = new BufferedReader(new InputStreamReader(klien.getInputStream()));
            server_writer = new BufferedWriter(new OutputStreamWriter(klien.getOutputStream()));
        } catch (IOException ex) {
            System.out.println("Read Failed");
            System.exit(-1);
        }
    }

    private void unkoneksi_klien() {
        try {
            klien.close();
            server_reader.close();
            server_writer.close();
            Pilihan.setEnabled(true);
            tmbON.setText("Connect");
        } catch (IOException ex) {
            Logger.getLogger(Chat.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private void unkoneksi_server() {
        try {
            server_reader.close();
            server_writer.close();
            tmbON.setText("ON");
            this.setTitle("Disconnected");
        } catch (IOException ex) {
            Logger.getLogger(Chat.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        Pilihan = new javax.swing.JComboBox();
        tmbON = new javax.swing.JButton();
        Username = new javax.swing.JTextField();
        Judul = new javax.swing.JLabel();
        tmbKirim = new javax.swing.JButton();
        Chattext = new javax.swing.JTextField();
        Listchat = new java.awt.List();
        Versi = new java.awt.Button();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        Pilihan.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Server", "Client" }));
        Pilihan.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                PilihanItemStateChanged(evt);
            }
        });
        Pilihan.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                PilihanActionPerformed(evt);
            }
        });

        tmbON.setText("ON");
        tmbON.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tmbONActionPerformed(evt);
            }
        });

        Username.setText("Server");

        Judul.setText("Username");

        tmbKirim.setText("Send");
        tmbKirim.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tmbKirimActionPerformed(evt);
            }
        });

        Versi.setLabel("java chat v 0.0.1");
        Versi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                VersiActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(Listchat, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(10, 10, 10)
                                .addComponent(Judul)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(Username, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(Pilihan, javax.swing.GroupLayout.PREFERRED_SIZE, 231, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addComponent(tmbON, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(Chattext, javax.swing.GroupLayout.PREFERRED_SIZE, 232, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(tmbKirim, javax.swing.GroupLayout.DEFAULT_SIZE, 73, Short.MAX_VALUE)))
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addGap(112, 112, 112)
                .addComponent(Versi, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(Pilihan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(tmbON))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(Username, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(Judul))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Listchat, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(23, 23, 23)
                        .addComponent(tmbKirim))
                    .addGroup(layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Chattext, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(21, 21, 21)
                .addComponent(Versi, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void PilihanActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
    }                                       

    private void PilihanItemStateChanged(java.awt.event.ItemEvent evt) {                                         
        // TODO add your handling code here:
        //1.
        if (Pilihan.getSelectedItem().equals("Server")) {
            tmbON.setText("ON");
            Username.setText("Server");
        } else {
            tmbON.setText("Connect");
            Username.setText("Client");
        }
    }                                        

    private void tmbONActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        //2.
            if (tmbON.getText().equals("Connect")) {
            tmbON.setText("Disconnect");
            Username.setEnabled(false);
            koneksi_klien();
            Thread tr = new Thread(this);
            tr.start();
        } else if (Pilihan.getSelectedItem().equals("Server")) {
            tmbON.setText("OFF");
            Username.setEnabled(false);
            koneksi_server();
            Thread tr = new Thread(this);
            tr.start();

        } else if (tmbON.getText().equals("Disconnect")) {
            Username.setEnabled(true);
            unkoneksi_klien();
        } else if (tmbON.getText().equals("OFF")) {
            Username.setEnabled(true);
            unkoneksi_server();
        }
        
    }                                     

    private void tmbKirimActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        //3.
        try {
            server_writer.write(Username.getText() + " : " + Chattext.getText());
            server_writer.newLine(); // tulis baris baru
            server_writer.flush();   // buffernya di reset
        } catch (IOException ex) {
            Logger.getLogger(Chat.class.getName()).log(Level.SEVERE, null, ex);
        }
        // mengirim teks ke list_chat
        Listchat.add(Username.getText() + " : " + Chattext.getText());
        Chattext.setText("");
    }                                        

    private void VersiActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        new About().show();
        //About abo = new About();
        //abo.setVisible(true);
    }                                     

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Chat.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Chat.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Chat.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Chat.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Chat().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JTextField Chattext;
    private javax.swing.JLabel Judul;
    private java.awt.List Listchat;
    private javax.swing.JComboBox Pilihan;
    private javax.swing.JTextField Username;
    private java.awt.Button Versi;
    private javax.swing.JButton tmbKirim;
    private javax.swing.JButton tmbON;
    // End of variables declaration                   
    
    public void run() {
        while (true) {
            try {
                Listchat.add(server_reader.readLine());
            } catch (IOException ex) {
                Logger.getLogger(Chat.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}

About.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package chat;

/**
 *
 * @author Opay
 */
public class About extends javax.swing.JFrame {

    /** Creates new form About */
    public About() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("Form About");
        setResizable(false);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
        });

        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel1.setText("Taupik Nurhidayat");

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        jLabel2.setText("Dimodifikasi Oleh....");

        jLabel3.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel3.setText("versi 0.0.1 ");

        jLabel4.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel4.setText("49013105");

        jLabel5.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel5.setText("D4 TKJMD ITB");

        jLabel6.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel6.setText("email : anoeri06@gmail.com");

        jLabel7.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel7.setText("website : https://anoeri06.wordpress.com");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(80, 80, 80)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(3, 3, 3)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(40, 40, 40)
                        .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(13, 13, 13)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(20, 20, 20)
                                .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(53, 53, 53)
                        .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    private void formWindowClosing(java.awt.event.WindowEvent evt) {                                   
    this.setVisible(false);          // TODO add your handling code here:
    }                                  

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new About().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    // End of variables declaration                  

}

Direktori Simpan
chat

Notepad Sederhana

1. Menu Utama

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package notepad;

import java.awt.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.undo.CannotUndoException;
import javax.swing.undo.UndoManager;
/**
 *
 * @author Opay
 */
public class Notepad extends javax.swing.JFrame {

    // Inisialisasi
    private File isi;
    int fileToOpen;
    int fileToSave;
    int fileToSaveas;
    JFileChooser filediOpen;
    JFileChooser filediSave;
    JFileChooser filediSaveas;
    private boolean disimpan;
    UndoManager undo = new UndoManager();

    /**
     * Creates new form Notepad
     */
    public Notepad() {
        //fulls screen
        /*GraphicsEnvironment env =
        GraphicsEnvironment.getLocalGraphicsEnvironment();
        this.setMaximizedBounds(env.getMaximumWindowBounds());
        this.setExtendedState(this.getExtendedState() | this.MAXIMIZED_BOTH);
        */
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // //GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollPane2 = new javax.swing.JScrollPane();
        TextArea = new javax.swing.JTextArea();
        MenuBar = new javax.swing.JMenuBar();
        mFile = new javax.swing.JMenu();
        fileNew = new javax.swing.JMenuItem();
        fileOpen = new javax.swing.JMenuItem();
        fileSave = new javax.swing.JMenuItem();
        fileSaveas = new javax.swing.JMenuItem();
        fileExit = new javax.swing.JMenuItem();
        mEdit = new javax.swing.JMenu();
        editUndo = new javax.swing.JMenuItem();
        editRedo = new javax.swing.JMenuItem();
        editCut = new javax.swing.JMenuItem();
        editCopy = new javax.swing.JMenuItem();
        editPaste = new javax.swing.JMenuItem();
        editDelete = new javax.swing.JMenuItem();
        mFormat = new javax.swing.JMenu();
        formatFont = new javax.swing.JMenuItem();
        formatLine = new javax.swing.JMenuItem();
        mView = new javax.swing.JMenu();
        viewFullscreen = new javax.swing.JMenuItem();
        mHelp = new javax.swing.JMenu();
        helpView = new javax.swing.JMenuItem();
        helpAbout = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        TextArea.setBackground(new java.awt.Color(255, 153, 255));
        TextArea.setColumns(20);
        TextArea.setRows(5);
        jScrollPane2.setViewportView(TextArea);

        MenuBar.setBackground(new java.awt.Color(153, 204, 0));

        mFile.setText("File");

        fileNew.setText("New");
        fileNew.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                fileNewActionPerformed(evt);
            }
        });
        mFile.add(fileNew);

        fileOpen.setText("Open");
        fileOpen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                fileOpenActionPerformed(evt);
            }
        });
        mFile.add(fileOpen);

        fileSave.setText("Save");
        fileSave.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                fileSaveActionPerformed(evt);
            }
        });
        mFile.add(fileSave);

        fileSaveas.setText("Save As");
        fileSaveas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                fileSaveasActionPerformed(evt);
            }
        });
        mFile.add(fileSaveas);

        fileExit.setText("Exit");
        fileExit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                fileExitActionPerformed(evt);
            }
        });
        mFile.add(fileExit);

        MenuBar.add(mFile);

        mEdit.setText("Edit");

        editUndo.setText("Undo");
        editUndo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                editUndoActionPerformed(evt);
            }
        });
        mEdit.add(editUndo);

        editRedo.setText("Redo");
        editRedo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                editRedoActionPerformed(evt);
            }
        });
        mEdit.add(editRedo);

        editCut.setText("Cut");
        editCut.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                editCutActionPerformed(evt);
            }
        });
        mEdit.add(editCut);

        editCopy.setText("Copy");
        editCopy.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                editCopyActionPerformed(evt);
            }
        });
        mEdit.add(editCopy);

        editPaste.setText("Paste");
        editPaste.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                editPasteActionPerformed(evt);
            }
        });
        mEdit.add(editPaste);

        editDelete.setText("Delete");
        editDelete.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                editDeleteActionPerformed(evt);
            }
        });
        mEdit.add(editDelete);

        MenuBar.add(mEdit);

        mFormat.setText("Format");

        formatFont.setText("Font");
        formatFont.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                formatFontActionPerformed(evt);
            }
        });
        mFormat.add(formatFont);

        formatLine.setText("Line");
        formatLine.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                formatLineActionPerformed(evt);
            }
        });
        mFormat.add(formatLine);

        MenuBar.add(mFormat);

        mView.setText("View");

        viewFullscreen.setText("Full Screen");
        viewFullscreen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                viewFullscreenActionPerformed(evt);
            }
        });
        mView.add(viewFullscreen);

        MenuBar.add(mView);

        mHelp.setText("Help");
        mHelp.setActionCommand("mHelp");

        helpView.setText("View Help");
        helpView.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                helpViewActionPerformed(evt);
            }
        });
        mHelp.add(helpView);

        helpAbout.setText("Tentang Notepad");
        helpAbout.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                helpAboutActionPerformed(evt);
            }
        });
        mHelp.add(helpAbout);

        MenuBar.add(mHelp);

        setJMenuBar(MenuBar);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 283, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
        );

        pack();
    }// //GEN-END:initComponents

    // MENU FILE
    private void fileNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileNewActionPerformed
        // TODO add your handling code here:
        TextArea.setText("");
    }//GEN-LAST:event_fileNewActionPerformed

    private void fileOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileOpenActionPerformed
        // TODO add your handling code here:
        openFile();
         /* Content
        if (fileToOpen == JFileChooser.APPROVE_OPTION){
			TextArea.setText("");
			try{
				Scanner scan = new Scanner(new FileReader(filediOpen.getSelectedFile().getPath()));
				while (scan.hasNext())
				TextArea.append(scan.nextLine());
			} catch (Exception ex){
				System.out.println(ex.getMessage());
				}
			}
        */
    }//GEN-LAST:event_fileOpenActionPerformed

    private void fileSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileSaveActionPerformed
        // TODO add your handling code here:
        saveFile();
                /* Content
                if (fileToSave == JFileChooser.APPROVE_OPTION){
			try {
				BufferedWriter out = new BufferedWriter(new FileWriter(filediSave.getSelectedFile().getPath()));
				out.write(TextArea.getText());
				out.close();
			} catch (IOException ex) {
				System.out.println(ex.getMessage());
				}
			}
                */
    }//GEN-LAST:event_fileSaveActionPerformed

    private void fileSaveasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileSaveasActionPerformed
        // TODO add your handling code here:
        if (isi== null)
        {
            saveFile();
        }
        else
        {
            saveasFile();
        }
    }//GEN-LAST:event_fileSaveasActionPerformed

    private void fileExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileExitActionPerformed
        // TODO add your handling code here:
        System.exit(0);
    }//GEN-LAST:event_fileExitActionPerformed

        // MENU EDIT
    private void editUndoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editUndoActionPerformed
        // TODO add your handling code here:
        edit_undo();
    }//GEN-LAST:event_editUndoActionPerformed

    private void editRedoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editRedoActionPerformed
        // TODO add your handling code here:
        edit_undo();
    }//GEN-LAST:event_editRedoActionPerformed

    private void editCutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editCutActionPerformed
        // TODO add your handling code here:
        cut();
    }//GEN-LAST:event_editCutActionPerformed

    private void editCopyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editCopyActionPerformed
        // TODO add your handling code here:
        copy();
    }//GEN-LAST:event_editCopyActionPerformed

    private void editPasteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editPasteActionPerformed
        // TODO add your handling code here:
        paste();
    }//GEN-LAST:event_editPasteActionPerformed

    private void editDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editDeleteActionPerformed
        // TODO add your handling code here:
        delete();
    }//GEN-LAST:event_editDeleteActionPerformed

    private void formatFontActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_formatFontActionPerformed
        // TODO add your handling code here:
        pilihfont();
    }//GEN-LAST:event_formatFontActionPerformed

    private void formatLineActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_formatLineActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_formatLineActionPerformed

    private void viewFullscreenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_viewFullscreenActionPerformed
        // TODO add your handling code here:
        //Belum Tahu Script
        fullscreen();

    }//GEN-LAST:event_viewFullscreenActionPerformed

    private void helpViewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_helpViewActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_helpViewActionPerformed

    private void helpAboutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_helpAboutActionPerformed
        // TODO add your handling code here:
        About abo = new About();
       abo.setVisible(true);
    }//GEN-LAST:event_helpAboutActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Notepad.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Notepad.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Notepad.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Notepad.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Notepad().setVisible(true);
            }
        });
    }

    // Pengaturan Menu
    //1. Menu File
    public void openFile(){
        //checkSaveRequirement();
        /*
        JFileChooser open = new JFileChooser();
	int option = open.showOpenDialog(this);
	fileToOpen = option;
	filediOpen = open;
        */

        JFileChooser pilihfile = new JFileChooser(".");
        int pilihan1 = pilihfile.showOpenDialog(this);
        if(pilihan1 == JFileChooser.APPROVE_OPTION)
        {
            FileReader baca_file = null;
            try {
                isi = pilihfile.getSelectedFile();
                setTitle(isi.getPath());
                baca_file = new FileReader(isi);
                BufferedReader br = new BufferedReader(baca_file);
             TextArea.setText(" ");
                while (br.ready()) {
                    TextArea.append(br.readLine() + "\n");
                }

            }catch (FileNotFoundException ex) {
                JOptionPane.showMessageDialog(this,"Cannot find the file");
            }catch (IOException ex) {
                JOptionPane.showMessageDialog(this,"Cannot read the file data");

            }
        }

    }

    public void saveFile(){
	if(isi!=null)
        {
            FileWriter simpan = null;
            try {
                simpan = new FileWriter(isi);
                simpan.write(TextArea.getText());
                simpan.flush();
                disimpan=true;
            } catch (IOException ex) {
                JOptionPane.showMessageDialog(this,"Maaf terjadi error");
            } finally {
                try {
                    simpan.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }
        else
        {
            saveasFile();
        }
    }

    public void saveasFile(){
        JFileChooser fileChooser=new JFileChooser(".");
        int option=fileChooser.showSaveDialog(this);
        if(option==JFileChooser.APPROVE_OPTION)
        {
            File fileku = fileChooser.getSelectedFile();
            isi=new File(fileChooser.getSelectedFile().getPath()+".txt");
            setTitle(isi.getPath());
            saveFile();
        }
    }

    public void checkSaveRequirement()
    {
        if(!disimpan)
        {
                int pilihan2 = JOptionPane.showConfirmDialog(this,"Text in "+isi.getName()+" has changed.\nDo you want to save the changes?","Confirmation",JOptionPane.YES_NO_OPTION);
                if(pilihan2 == JOptionPane.YES_OPTION)
                {
                    saveFile();
                }
        }
    }

    //1. Menu EDIT
    public void edit_undo() {
        if( undo.canUndo())
        {
            try
            {
                undo.undo();
            }
            catch(CannotUndoException e)
            {
            }
        }
    }

    private void cut() {
        TextArea.cut();
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    private void copy() {
        TextArea.copy();
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    private void paste() {
        TextArea.paste();
    }

    public void delete(){
        String temp = TextArea.getText();
        TextArea.setText(temp.substring(0, TextArea.getSelectionStart())+temp.substring(TextArea.getSelectionEnd()));
    }

    public void pilihfont(){
        Menu_format fontChooser=new Menu_format(this,true,TextArea.getFont());
        int choice=fontChooser.showFontDialog();
        Font font=fontChooser.getSelectedFont();
        if(font!=null)
        TextArea.setFont(font);
    }
    public void fullscreen() {
        setExtendedState(java.awt.Frame.MAXIMIZED_BOTH);
        //JFrame.setDefaultLookAndFeelDecorated(true);
        //Notepad t = new Notepad();
        //t.setVisible(true);
}

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JMenuBar MenuBar;
    public static javax.swing.JTextArea TextArea;
    private javax.swing.JMenuItem editCopy;
    private javax.swing.JMenuItem editCut;
    private javax.swing.JMenuItem editDelete;
    private javax.swing.JMenuItem editPaste;
    private javax.swing.JMenuItem editRedo;
    private javax.swing.JMenuItem editUndo;
    private javax.swing.JMenuItem fileExit;
    private javax.swing.JMenuItem fileNew;
    private javax.swing.JMenuItem fileOpen;
    private javax.swing.JMenuItem fileSave;
    private javax.swing.JMenuItem fileSaveas;
    private javax.swing.JMenuItem formatFont;
    private javax.swing.JMenuItem formatLine;
    private javax.swing.JMenuItem helpAbout;
    private javax.swing.JMenuItem helpView;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JMenu mEdit;
    private javax.swing.JMenu mFile;
    private javax.swing.JMenu mFormat;
    private javax.swing.JMenu mHelp;
    private javax.swing.JMenu mView;
    private javax.swing.JMenuItem viewFullscreen;
    // End of variables declaration//GEN-END:variables

}

2. Fomat Font

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package notepad;

import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
 *
 * @author Opay
 */
public class Menu_format extends javax.swing.JDialog {

    /** Creates new form JFontChooser */

    public Menu_format(java.awt.Frame parent, boolean modal,Font font)
    {
        this(parent,modal);
        daftar.setSelectedValue(font.getName(),true);
        ukuran.setSelectedValue(String.valueOf(font.getSize()),true);
        switch(font.getStyle())
        {
            case Font.PLAIN:Style_font.setSelectedValue("Regular",true);break;
            case Font.BOLD:Style_font.setSelectedValue("Bold",true);break;
            case Font.ITALIC:Style_font.setSelectedValue("Italic",true);break;
            case Font.BOLD|Font.ITALIC:Style_font.setSelectedValue("Bold Italic",true);break;
        }

    }
    public Menu_format(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent we)
        {
            selectedFont=null;
            choice=CANCEL_OPTION;
            dispose();
        }
        });
        setSize(413,375);
        setLocation(parent.getX()+(parent.getWidth()-getWidth())/2,parent.getY()+(parent.getHeight()-getHeight())/2);
        GraphicsEnvironment graphicsEnvironment=GraphicsEnvironment.getLocalGraphicsEnvironment();
        availableFonts=graphicsEnvironment.getAvailableFontFamilyNames();
        daftar.setListData(availableFonts);
        daftar.setSelectedIndex(0);
        preview();

    }

    public int showFontDialog()
    {

        setVisible(true);
        return choice;

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // //GEN-BEGIN:initComponents
    private void initComponents() {

        sclPreview = new javax.swing.JScrollPane();
        test = new javax.swing.JTextArea();
        sclFontList = new javax.swing.JScrollPane();
        daftar = new javax.swing.JList();
        sclFontSize = new javax.swing.JScrollPane();
        ukuran = new javax.swing.JList();
        sclFontStyle = new javax.swing.JScrollPane();
        Style_font = new javax.swing.JList();
        btnOK = new javax.swing.JButton();
        btnCancel = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("Format Huruf");
        setBackground(new java.awt.Color(204, 204, 255));
        setBounds(new java.awt.Rectangle(0, 0, 413, 351));
        setResizable(false);

        test.setColumns(20);
        test.setRows(5);
        sclPreview.setViewportView(test);

        daftar.setSelectedIndex(0);
        daftar.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                daftarValueChanged(evt);
            }
        });
        sclFontList.setViewportView(daftar);

        ukuran.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "8", "9", "10", "11", "12", "14", "16", "18", "20", "22", "24", "26", "28", "36", "48", "72" };
            public int getSize() { return strings.length; }
            public Object getElementAt(int i) { return strings[i]; }
        });
        ukuran.setSelectedIndex(5);
        ukuran.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                ukuranValueChanged(evt);
            }
        });
        sclFontSize.setViewportView(ukuran);

        Style_font.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "Regular", "Italic", "Bold", "Bold Italic" };
            public int getSize() { return strings.length; }
            public Object getElementAt(int i) { return strings[i]; }
        });
        Style_font.setSelectedIndex(0);
        Style_font.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                Style_fontValueChanged(evt);
            }
        });
        sclFontStyle.setViewportView(Style_font);

        btnOK.setBackground(new java.awt.Color(153, 153, 153));
        btnOK.setText("OK");
        btnOK.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnOKActionPerformed(evt);
            }
        });

        btnCancel.setBackground(new java.awt.Color(153, 153, 153));
        btnCancel.setText("Cancel");
        btnCancel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(sclFontList, javax.swing.GroupLayout.PREFERRED_SIZE, 220, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(sclFontStyle, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(10, 10, 10)
                        .addComponent(sclFontSize, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(13, 13, 13))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(sclPreview, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 11, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(btnOK, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(btnCancel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addContainerGap())))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(20, 20, 20)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(sclFontList, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(sclFontStyle, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(sclFontSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(10, 10, 10)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(btnOK, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(16, 16, 16)
                        .addComponent(btnCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(sclPreview))
                .addGap(64, 64, 64))
        );

        pack();
    }// //GEN-END:initComponents

    private void daftarValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_daftarValueChanged

        preview();
    }//GEN-LAST:event_daftarValueChanged

    private void preview()
    {
        setSelectedFont();
        test.setFont(getSelectedFont());
        test.setText(daftar.getSelectedValue().toString());
    }
    private void setSelectedFont()
    {
        String fontName=daftar.getSelectedValue().toString();

        int fontStyle=Style_font.getSelectedIndex();
        switch(fontStyle)
        {
            case 0: fontStyle=Font.PLAIN;break;
            case 1: fontStyle=Font.ITALIC;break;
            case 2: fontStyle=Font.BOLD;break;
            case 3: fontStyle=Font.BOLD|Font.ITALIC;break;
        }

        int fontSize=Integer.parseInt(ukuran.getSelectedValue().toString());

        selectedFont=new Font(fontName,fontStyle,fontSize);
    }
    private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOKActionPerformed

        choice=OK_OPTION;
        dispose();
    }//GEN-LAST:event_btnOKActionPerformed

    public Font getSelectedFont() {
        return selectedFont;
    }

    private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelActionPerformed
        choice=CANCEL_OPTION;
        selectedFont=null;
        dispose();
    }//GEN-LAST:event_btnCancelActionPerformed

    private void Style_fontValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_Style_fontValueChanged
        preview();
    }//GEN-LAST:event_Style_fontValueChanged

    private void ukuranValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_ukuranValueChanged
        preview();
    }//GEN-LAST:event_ukuranValueChanged

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                Menu_format dialog = new Menu_format(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
               dialog.showFontDialog();
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JList Style_font;
    private javax.swing.JButton btnCancel;
    private javax.swing.JButton btnOK;
    private javax.swing.JList daftar;
    private javax.swing.JScrollPane sclFontList;
    private javax.swing.JScrollPane sclFontSize;
    private javax.swing.JScrollPane sclFontStyle;
    private javax.swing.JScrollPane sclPreview;
    private javax.swing.JTextArea test;
    private javax.swing.JList ukuran;
    // End of variables declaration//GEN-END:variables

    private String[] availableFonts;
    private static final int OK_OPTION=1;
    private static final int CANCEL_OPTION=0;
    private int choice=0;
    private static  Font selectedFont;
}

3. About

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package notepad;

/**
 *
 * @author Opay
 */
public class About extends javax.swing.JFrame {

    /** Creates new form About */
    public About() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // //GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("Form About");
        setResizable(false);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
        });

        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel1.setText("Taupik Nurhidayat");

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        jLabel2.setText("Dimodifikasi Oleh....");

        jLabel3.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel3.setText("versi 0.0.1 ");

        jLabel4.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel4.setText("49013105");

        jLabel5.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel5.setText("D4 TKJMD ITB");

        jLabel6.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel6.setText("email : anoeri06@gmail.com");

        jLabel7.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel7.setText("website : https://anoeri06.wordpress.com");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(80, 80, 80)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(3, 3, 3)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(40, 40, 40)
                        .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(13, 13, 13)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(20, 20, 20)
                                .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(53, 53, 53)
                        .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );

        pack();
    }// //GEN-END:initComponents

    private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
    this.setVisible(false);          // TODO add your handling code here:
    }//GEN-LAST:event_formWindowClosing

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new About().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    // End of variables declaration//GEN-END:variables

}

Direktori Simpan
notepad