Kamis, 15 Maret 2012

Project Stream IO

pertama membuat file dengan nama jenisFile.java
isinya :

package project_io;
import java.io.*;
import javax.swing.filechooser.FileFilter;

class jenisFile extends FileFilter {
private String[] s;
jenisFile(String[] sArg) {
s = sArg;
}
// Tentukan file apa yang akan ditampilkan
public boolean accept(File fArg) {
if (fArg.isDirectory())
return true;
for (int i = 0; i < s.length; ++i)
if (fArg.getName().toLowerCase().indexOf(s[i].toLowerCase()) > 0)
return true;
// selain kedua hal di atas, anggap false
return false;
}
public String getDescription() {
String tmp = "";
for (int i = 0; i < s.length; ++i)
tmp += "*" + s[i] + " ";
return tmp;
}
}
// Jika Extension dari file sesuai syarat, tampilkan


kemudian membuat NEW - JFrame Form kalau aku nama filenya ProjectIO.java
tampilannya seperti ini 



setelah itu mulai mengcoding :D



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(0, 0, 204), 2), "First Text", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bleeding Cowboys", 0, 14), new java.awt.Color(0, 0, 204))); // 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(0, 0, 204)), "Menu", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bleeding Cowboys", 0, 14), new java.awt.Color(0, 0, 204))); // 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));
        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(0, 0, 204)), "Password", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bleeding Cowboys", 0, 14), new java.awt.Color(0, 0, 204))); // 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(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(txtPass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );


        btnClear.setFont(new java.awt.Font("Book Antiqua", 0, 12)); // NOI18N
        btnClear.setText("Clear Text");
        btnClear.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                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.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel1Layout.createSequentialGroup()
                            .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)))
                                .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 442, Short.MAX_VALUE))
                            .addContainerGap())
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                            .addComponent(btnClear)
                            .addGap(179, 179, 179)))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(108, 108, 108))))
        );
        jPanel1Layout.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)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(btnClear)
                .addGap(18, 18, 18)
                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(31, Short.MAX_VALUE))
        );


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


        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 204)), "Password", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bleeding Cowboys", 0, 14), new java.awt.Color(0, 0, 204))); // 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)); // NOI18N
        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.Color(0, 0, 204)), "Enkripsi", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bleeding Cowboys", 0, 14), new java.awt.Color(0, 0, 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)); // NOI18N
        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(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())
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(106, 106, 106)
                .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)
                        .addContainerGap())
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(btnDes, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGap(64, 64, 64)
                        .addComponent(btnSave2)
                        .addGap(142, 142, 142))))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(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)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnDes)
                    .addComponent(btnSave2))
                .addGap(18, 18, 18)
                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(36, Short.MAX_VALUE))
        );


        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
            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                   
}




setelah mengcoding coba running .. jika tidak ada yang error maka tampilannya akan seperti ini 


setelah itu coba kita enkripsi ..
bila sukses maka hasil enkripsinya akan seperti ini 


setelah itu kita diskripsikan ,, bila tidak dimasukkan password maka akan seperti ini

setelah diberi password tampilannya seperti ini


sekian dari saya ,, silahkan dicoba :)
READ MOREProject Stream IO

Rabu, 14 Maret 2012

Event Handling

Pengertian 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 ActionListener yang menangani aksi terhadap tombol.


Konsep Dasar Event Handling : Event berguna untuk menangani interaksi user dengan program, misalnya user memilih sebuah menu dalam aplikasi MIDlet.Untuk menangani event perlu mengimplementasikan interface CommandListener dan atau ItemListener.
CommandListener berfungsi untuk menangani jika user memilih Command tertentu sedangkan ItemListener berfungsi untuk menangani jika user mengubah nilai seperti misalnya mengubah pilihan pada ChoiceGroup.


Contoh Aplikasinya :

import javax.microedition.MIDlet.*;
import javax.microedition.lcdui.*;
public class NotHelloWorld2 extends MIDlet implements CommandListener{
private Command cmdExit;
private Display display;
public NotHelloWorld2()
{
display = Display.getDisplay(this);
cmdExit = new Command("Exit", Command.SCREEN,2);
}
public void startApp()
{
TextBox t = new TextBox("Not ","Not Hello World",256,0);
t.addCommand(cmdExit);
t.setCommandListener(this);
display.setCurrent(t);
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
public void commandAction(Command cmd,Displayable disp)
{
if(cmd==cmdExit)
{
destroyApp(false);
notifyDestroyed();
}
}
}

Pemrograman aplikasi wireless dengan Java/J2ME 24
Pada contoh kedua ini, kita tambahkan sebuah Command untuk keluar dari aplikasi yang telah kita buat pada contoh 1. Ketika program pertama kali dipanggil, maka state berada pada Aktif, disini sebuah TextBox dan Command dibuat. Kemudian program menunggu respon dari user dengan mengimplementasikan CommandListener. Ketika user menekan Command “cmdExit” , maka program memanggil metodh(destroyApp) untuk membunuh MIDlet.



SUMBER :
http://epp39.blogspot.com/2012/03/konsep-dasar-gui-pada-java.html

READ MOREEvent Handling

GUI Java

Pengertian GUI Java :

JAVA GUI
Dapat disimpulkan bahwa Java GUI adalah pemrograman dengan bahasa Java yang dibuat menggunakan aplikasi yang berbasiskan GUI. 
Tujuannya adalah menambahkan komponen-komponen yang tidak bisa dibuat dalam basis text. 
Komponen-konponen tersebut bisa berupa tombol, gambar, dll. 
Tujuannya  adalah untuk memudahkan user menggunakan program yang dibuat tersebut.

Apa itu GUI ?
GUI (Graphical User Interface) yaitu Tampilan Antarmuka Grafis dimana user dapat berinteraksi dengan tampilan grafis yang lebih mudah dimengerti. Tidak seperti postingan yang dulu, dimana saya menggunakan konsol command prompt, kali ini akan dibuat GUInya.



Konsep Dasar GUI Java :
  • Graphical Object 
  • Container (tempat), obyek yang dapat menampung komponen grafis dan tempat yang lebih kecil 
  • Contoh: frames, panels
  • Component, obyek grafis yang berfungsi untuk menampilkan data, menerima masukan, atau menunjukkan suatu kondisi.
  • Contoh: buttons, labels, text fields
  • Event, obyek yang merepresentasikan suatu kejadian.
  • Contoh: gerakan mouse, penekanan tombol
  • Listener, suatu obyek yang menunggu suatu kejadian khusus dan akan bereaksi (melakukan sesuatu) jika kejadian tersebut terjadi

Contoh Aplikasi :
  • Pola umum pembuatan aplikasi Java berbasis GUI. Pada aplikasi berbasis GUI yang dasar, kita akan menggunakan Swing, berikut contoh skripnya: 

  • Mari kita buat message box untuk user, berikut contohnya:
 

  • Nah, mari dicompile:
 

  • Setelah dicompile, maka akan muncul GUI program berupa pesan yang kita buat, tapi script yang sebelumnya belum full, berikut contoh full-scriptnya :
 

  • Nah, itu adalah contoh pembuatan message box pada Java basis GUI (mirip dengan System.out.println di konsol biasa), pada postingan berikutnya, kita akan membahas bagaimana menerima input dari user dan mengolahnya. 
 
SUMBER :

http://epp39.blogspot.com/2012/03/konsep-dasar-gui-pada-java.html
http://antonyworld.wordpress.com/2011/08/29/java_with_gui_basic/
READ MOREGUI Java