Thursday, March 15, 2012

Project IO


ENSKRIPSI


Buatlah file ProjectIO.java





package project_io;


/**
 *
 * @author nadya
 */


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.Timer;
import javax.swing.Icon;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.filechooser.*;
import javax.swing.*;
import java.io.*;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.swing.filechooser.FileFilter;


public class ProjectIO extends javax.swing.JFrame {
    JFileChooser fc;
    File file;
    boolean Nfile;
    final String[] EXT = { ".csv" };
    final String[] EXT2 = { ".txt", ".java" };
    private String text;
    
    public ProjectIO() {
        initComponents();
        editor.setVisible(false);
        editor2.setFocusable(false);
        editor2.setEditable(false);
        this.setTitle("Untitled - NOTES");
        fc = new JFileChooser();
        fc.addChoosableFileFilter(new jenisFile(EXT));
        fc.addChoosableFileFilter(new jenisFile(EXT2));
        fc.setAcceptAllFileFilterUsed(false);
        Nfile = true;
    }


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


        jPanel1 = new javax.swing.JPanel();
        jComboBox1 = new javax.swing.JComboBox();
        jPanel3 = new javax.swing.JPanel();
        btnNew = new javax.swing.JButton();
        btnOpen = new javax.swing.JButton();
        btnSave = new javax.swing.JButton();
        btnSaveAs = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        txtnamafield = new javax.swing.JTextField();
        jPanel4 = new javax.swing.JPanel();
        txtPass = new javax.swing.JTextField();
        btnClear = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        editor = new javax.swing.JEditorPane();
        jPanel2 = new javax.swing.JPanel();
        jPanel5 = new javax.swing.JPanel();
        txtCPass = new javax.swing.JTextField();
        btnDes = new javax.swing.JButton();
        jPanel8 = new javax.swing.JPanel();
        btnCrypt = new javax.swing.JButton();
        btnMD5 = new javax.swing.JButton();
        btnRC = new javax.swing.JButton();
        btnCC = new javax.swing.JButton();
        spnGeser = new javax.swing.JSpinner();
        btnSave2 = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        editor2 = new javax.swing.JEditorPane();
        btnExit = new javax.swing.JButton();


        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);


        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(153, 0, 153), 2), "First Text", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bernard MT Condensed", 0, 14), new java.awt.Color(255, 153, 255))); // NOI18N
        jPanel1.setForeground(new java.awt.Color(255, 153, 204));


        jComboBox1.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Menu", "New", "Open", "Save", "Save As" }));
        jComboBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBox1ActionPerformed(evt);
            }
        });


        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(153, 0, 153)), "Menu", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bernard MT Condensed", 0, 14), new java.awt.Color(255, 153, 255))); // NOI18N


        btnNew.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        btnNew.setText("New");
        btnNew.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNewActionPerformed(evt);
            }
        });


        btnOpen.setFont(new java.awt.Font("Book Antiqua", 0, 12)); // NOI18N
        btnOpen.setText("Open");
        btnOpen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnOpenActionPerformed(evt);
            }
        });


        btnSave.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        btnSave.setText("Save");
        btnSave.setEnabled(false);
        btnSave.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSaveActionPerformed(evt);
            }
        });


        btnSaveAs.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        btnSaveAs.setText("Save As");
        btnSaveAs.setEnabled(false);
        btnSaveAs.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSaveAsActionPerformed(evt);
            }
        });


        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(btnSave, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(btnNew, javax.swing.GroupLayout.DEFAULT_SIZE, 73, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnSaveAs, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(btnOpen, javax.swing.GroupLayout.DEFAULT_SIZE, 75, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnNew)
                    .addComponent(btnOpen))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnSave)
                    .addComponent(btnSaveAs))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );


        jLabel1.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        jLabel1.setText("Nama File");


        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(153, 0, 153)), "Password", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bernard MT Condensed", 0, 14), new java.awt.Color(255, 153, 255))); // NOI18N


        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(txtPass, javax.swing.GroupLayout.DEFAULT_SIZE, 197, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(txtPass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );


        btnClear.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        btnClear.setText("Clear Text");
        btnClear.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
      &nbrp;         btnClearActionPerformed(evt);
            }
        });


        editor.setEnabled(false);
        jScrollPane1.setViewportView(editor);


        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(26, 26, 26)
                        .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(32, 32, 32)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(txtnamafield, javax.swing.GroupLayout.DEFAULT_SIZE, 127, Short.MAX_VALUE)
                            .addComponent(jLabel1)))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(65, 65, 65)
                        .addComponent(btnClear))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 442, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel1L`yout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel1)
                        .addGap(9, 9, 9)
                        .addComponent(txtnamafield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(18, 18, 18)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(43, 43, 43)
                        .addComponent(btnClear))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(28, 28, 28)
                        .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(35, Short.MAX_VALUE))
        );


        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(153, 0, 153), 2), "Enkripsi Text", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bernard MT Condensed", 0, 14), new java.awt.Color(255, 153, 255))); // NOI18N
        jPanel2.setForeground(new java.awt.Color(255, 153, 204));


        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(153, 0, 153)), "Password", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bernard MT Condensed", 0, 14), new java.awt.Color(255, 153, 255))); // NOI18N


        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(txtCPass, javax.swing.GroupLayout.DEFAULT_SIZE, 197, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(txtCPass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );


        btnDes.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        btnDes.setText("Description");
        btnDes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnDesActionPerformed(evt);
            }
        });


        jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Bolor(153, 0, 153)), "Enkripsi", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bernard MT Condensed", 0, 14), new java.awt.Color(255, 153, 255))); // NOI18N


        btnCrypt.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        btnCrypt.setText("Cryptography");
        btnCrypt.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCryptActionPerformed(evt);
            }
        });


        btnMD5.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        btnMD5.setText("MD5");
        btnMD5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnMD5ActionPerformed(evt);
            }
        });


        btnRC.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        btnRC.setText("Random Char");
        btnRC.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnRCActionPerformed(evt);
            }
        });


        btnCC.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        btnCC.setText("Caesar Chiper");
        btnCC.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCCActionPerformed(evt);
            }
        });


        javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
        jPanel8.setLayout(jPanel8Layout);
        jPanel8Layout.setHorizontalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(btnRC, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(btnCrypt, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(btnMD5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(btnCC, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel8Layout.setVerticalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnCrypt)
                    .addComponent(btnMD5))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnRC)
                    .addComponent(btnCC))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );


        btnSave2.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        btnSave2.setText("Save");
        btnSave2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSave2ActionPerformed(evt);
            }
        });


        editor2.setEnabled(false);
        jScrollPane2.setViewportView(editor2);


        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(55, 55, 55)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(btnSave2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(btnDes, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(spnGeser, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 442, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(19, 19, 19)
                        .addComponent(spnGeser, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(18, 18, 18)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                        .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(35, 35, 35))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                        .addComponent(btnDes)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(btnSave2)
                        .addGap(37, 37, 37))))
        );


        btnExit.setFont(new java.awt.Font("Book Antiqua", 0, 12));
        btnExit.setText("Exit");
        btnExit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnExitActionPerformed(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()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(28, 28, 28)
                .addComponent(btnExit, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGap(18, 18, 18)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addContainerGap())
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addContainerGap())
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(btnExit)
                        .addGap(219, 219, 219))))
        );


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


    private void btnExitActionPerformed(java.awt.event.ActionEvent evt) {                                        
        System.exit(0); 
    }                                       


    private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {                                       
        editor.setText("");
        btnSave.setEnabled(true);
        btnSaveAs.setEnabled(true);
        editor.requestFocus();
        this.setTitle("Untitled - NOTES");
        Nfile = true;
        editor.setEnabled(true);
        editor.setVisible(true);
    }                                      


    private void btnOpenActionPerformed(java.awt.event.ActionEvent evt) {                                        
        int hasil = fc.showOpenDialog(this);
        editor.setEnabled(true);
        editor.setVisible(true);
        btnSave.setEnabled(true);
        btnSaveAs.setEnabled(true);
        if (hasil == JFileChooser.APPROVE_OPTION) {
        file = fc.getSelectedFile();
        try {
        editor.read(new FileInputStream(file), null);
        } catch (IOException e) {
        msg("Gagal Buka File : "+file.getName() );
        return ;
        }
        }
        this.setTitle(file.getName()+" - NOTES" );
        Nfile = false;
        text=file.getPath().toString();
        txtnamafield.setText(text);
    }                                       


    private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {                                        
        if (Nfile)
        btnSaveAs.doClick();
        else
        SimpanFile();
    }                                       


    private void btnSaveAsActionPerformed(java.awt.event.ActionEvent evt) {                                          
        if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION){
            file = fc.getSelectedFile();
            if (!file.exists() || okToReplace())
            SimpanFile();
        }
    }                                         


    private void btnClearActionPerformed(java.awt.event.ActionEvent evt) {                                         
        editor.setText("");
    }                                        


    private void btnSave2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION){
        file = fc.getSelectedFile();
        if (!file.exists() || okToReplace())
        SimpanFile2();
        }
    }                                        


    private void btnDesActionPerformed(java.awt.event.ActionEvent evt) {                                       
            if (txtCPass.getText().equals(txtPass.getText())){
                JOptionPane.showMessageDialog(null, "Descryption Success");
                editor2.setText(editor.getText());
            }
            else
        &nbsp:   JOptionPane.showMessageDialog(null, "What Are You Doing");
    }                                      


    private void btnCryptActionPerformed(java.awt.event.ActionEvent evt) {                                         
        encrypt();
    }                                        


    private void btnRCActionPerformed(java.awt.event.ActionEvent evt) {                                      
        String randomKey = "";
        double randomNumber;
        for (int i=0; i<editor.getText().length(); i++) {
             randomNumber = Math.random() * 35 + (int)spnGeser.getValue();
             randomKey = randomKey + (char)randomNumber;
        }
        editor2.setText(randomKey);
    }                                     


    private void btnMD5ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        EncryptMD5 md5=new EncryptMD5();
        try {
            editor2.setText(md5.MD5(editor.getText()));
        } catch (NoSuchAlgorithmException ex) {
            Logger.getLogger(ProjectIO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(ProjectIO.class.getName()).log(Level.SEVERE, null, ex);
        }
    }                                      


    private void btnCCActionPerformed(java.awt.event.ActionEvent evt) {                                      
    getData=editor.getText();
    getData=getData.trim();
    len=getData.length();
    con=getData.toCharArray();
    j=len+1;
    getData="";
    try {
    for( i1=0;i1<j;i1++){    
          a=con[i1];
          k=(int)a;
          k+=(int)spnGeser.getValue();
          a=(char)k;
       getData=getData+(a.toString());
    } }
    catch(Exception e){


    } 
    System.out.println(getData);
    System.out.println(len);
    editor2.setText(getData);
    }                                     


    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        if(jComboBox1.getSelectedItem().equals("New")){
            editor.setText("");
            btnSave.setEnabled(true);
            btnSaveAs.setEnabled(true);
            editor.requestFocus();
            this.setTitle("Untitled - NOTES");
            Nfile = true;
            editor.setEnabled(true);
            editor.setVisible(true);
        }
        if(jComboBox1.getSelectedItem().equals("Open")){
            int hasil = fc.showOpenDialog(this);
            editor.setEnabled(true);
            editor.setVisible(true);
            btnSave.setEnabled(true);
            btnSaveAs.setEnabled(true);
            if (hasil == JFileChooser.APPROVE_OPTION) {
            file = fc.getSelectedFile();
            try {
            editor.read(new FileInputStream(file), null);
            } catch (IOException e) {
            msg("Gagal Buka File : "+file.getName() );
            return ;
            }
            }
            this.setTitle(file.getName()+" - NOTES" );
            Nfile = false;
        }
        if(jComboBox1.getSelectedItem().equals("Save")){
            if (Nfile)
            btnSaveAs.doClick();
            else
            SimpanFile();
        }
        if(jComboBox1.getSelectedItem().equals("Save As")){
            if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION){
            file = fc.getSelectedFile();
            if (!file.exists() || okToReplace())
            SimpanFile();
            }
        }
    }                                          
   private void msg(String pesan) {
    JOptionPane.showMessageDialog(this,pesan,"Informasi",
    JOptionPane.INFORMATION_MESSAGE);
    }
    
    private boolean okToReplace() {
    return (JOptionPane.showConfirmDialog(this,
    "File "+file.getName()+" Sudah Ada\n"+
    "Akan Ditimpa ?",
    "Peringatan",JOptionPane.YES_NO_OPTION)==0) ;
    }
    
    private void SimpanFile2() {
    PrintWriter pw = null;
    try {
    pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
    } catch (IOException e) {
    msg("Gagal Simpan File : '" + file.getName());
    return;
    }
    pw.print(editor2.getText());
    pw.close();
    this.setTitle(file.getName()+" - NOTES" );
    Nfile = false;
    }
    
    
    private void SimpanFile() {
    PrintWriter pw = null;
    try {
    pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
    } catch (IOException e) {
    msg("Gagal Simpan File : '" + file.getName());
    return;
    }
    pw.print(editor.getText());
    pw.close();
    this.setTitle(file.getName()+" - NOTES" );
    Nfile = false;
    }
    
    String getData,cs,main="";
    char con[];
    int len,hc,j=0;
    int i1=0;
    char bb[];
    int k=0;
    Character a;
   
    
    public void encrypt() {
    getData=editor.getText();
    getData=getData.trim();
    len=getData.length();
    con=getData.toCharArray();
    j=len-1;
    getData="";
    try {
    for( i1=j;i1>=0;i1--){    
          a=con[i1];
          k=(int)a;
          k+=(int)spnGeser.getValue();
          a=(char)k;
       getData=getData+(a.toString());
    } }
    catch(Exception e){


    } 
    System.out.println(getData);
    System.out.println(len);
    editor2.setText(getData);
    }
    
    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {


            public void run() {
                new ProjectIO().setVisible(true);
            }
        });
    }
    
    class EncryptMD5 {


    private String convertToHex(byte[] data) { 
        StringBuffer buf = new StringBuffer();
        for (int i = 0; i < data.length; i++) { 
            int halfbyte = (data[i] >>> 4) & 0x0F;
            int two_halfs = 0;
            do { 
                if ((0 <= halfbyte) && (halfbyte <= 9)) 
                    buf.append((char) ('0' + halfbyte));
                else 
                    buf.append((char) ('a' + (halfbyte - (int)spnGeser.getValue())));
                halfbyte = data[i] & 0x0F;
            } while(two_halfs++ < 1);
        } 
        return buf.toString();
    } 

    public  String MD5(String text) 
    throws NoSuchAlgorithmException, UnsupportedEncodingException  { 
        MessageDigest md;
        md = MessageDigest.getInstance("MD5");
        byte[] md5hash = new byte[32];
        md.update(text.getBytes("iso-8859-1"), 0, text.length());
        md5hash = md.digest();
        return convertToHex(md5hash);
    }
    
    
    
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton btnCC;
    private javax.swing.JButton btnClear;
    private javax.swing.JButton btnCrypt;
    private javax.swing.JButton btnDes;
    private javax.swing.JButton btnExit;
    private javax.swing.JButton btnMD5;
    private javax.swing.JButton btnNew;
    private javax.swing.JButton btnOpen;
    private javax.swing.JButton btnRC;
    private javax.swing.JButton btnSave;
    private javax.swing.JButton btnSave2;
    private javax.swing.JButton btnSaveAs;
    private javax.swing.JEditorPane editor;
    private javax.swing.JEditorPane editor2;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JSpinner spnGeser;
    private javax.swing.JTextField txtCPass;
    private javax.swing.JTextField txtPass;
    private javax.swing.JTextField txtnamafield;
    // End of variables declaration                   
}


Kemudian buat file jenisFile.java

Source Code:


Event Handling

Event Handling

Event Handling merupakan konsep penanganan suatu action yang terjadi. Jadi suatu program akan berjalan saat sesuatu terjadi, misalnya saat tombol diklik, saat combo box dipilih dan sebagainya. Java memiliki beberapa jenis Event Handling, salah satunya adalah class ActinnListener yang menangani aksi terhadap tombol. 

Contoh programnya :
import java.awt.*;
02
import java.awt.event.*;

03
import javax.swing.*;
04


05
public class ClickMe extends JFrame implements ActionListener {
06
    private JButton tombol;

07

08
    public ClickMe() {

09
        super ("Event Handling");  
10


11
        Container container = getContentPane();
12
        container.setLayout(new FlowLayout());     

13

14
        tombol = new JButton ("Click Me!");

15
        tombol.addActionListener(this);
16
        container.add(tombol);     

17

18
        setSize (200,100);

19
        setVisible (true);
20
    }

21

22
    public static void main (String arg[]) {

23
        ClickMe test = new ClickMe();
24
        test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

25
    }
26


27
    public void actionPerformed (ActionEvent e) {
28
        if (e.getSource() == tombol) {

29
            JOptionPane.showMessageDialog(null, "You click me, guys !!!");
30
        }

31
    }
32
}


hasilnya seperti ini :
      
  

Selamat Mencoba :D