Langsung ke konten utama

My First Java Program with GUI: Kalkulator Sederhana (Addition only)

"Hello World"
Akhirnya setelah 2 hari pusing-pusingan ngutak-atik netbeans, nyari sumber sana-sini cuma buat belajar tentang Java GUI di NetBeans, penulis nemu juga artikel bagus buat awalan belajar pake GUI di NetBeans. Dan ternyata artikel ini malah ketemu di situs empunya IDE ini sendiri, alias NetBeans -__-". Kalo mau liat artikel aslinya bisa liat disini.

Program ini sebenernya cuma program simpel yang fungsinya untuk nambahin 2 bilangan aja. Ya, kalo di pascal sih mungkin ga bakal makan waktu sama sekali buat bikin program kaya gini. Tapi kalo di Java dgn GUI lumayan repot juga, apalagi kalo belum punya basic-basic nya sama sekali. Setidaknya lumayan sebagai latihan buat newbie di Java :).

Berikut tampilan dari program tersebut.
















Dan berikut source lengkapnya:


public class NumberAdditionUI extends javax.swing.JFrame {


    /** Creates new form NumberAdditionUI */
    public NumberAdditionUI() {
        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")
    //
    private void initComponents() {


        jPanel1 = new javax.swing.JPanel();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jTextField3 = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();


        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);


        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Number Addition"));


        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });


        jLabel1.setText("First Number");


        jLabel2.setText("Second Number");


        jLabel3.setText("Result");


        jButton1.setText("Add");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });


        jButton2.setText("Clear");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });


        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(22, 22, 22)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addComponent(jButton1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton2))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel1)
                            .addComponent(jLabel2)
                            .addComponent(jLabel3))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE)
                            .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE)
                            .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE))))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton2)
                    .addComponent(jButton1))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );


        jButton3.setText("Exit");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(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()
                .addGap(23, 23, 23)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jButton3)
                    .addComponent(jPanel1, 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()
                .addGap(21, 21, 21)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jButton3)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );


        pack();
    }//


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


    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        System.exit(0);
    }


    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        jTextField1.setText("");
        jTextField2.setText("");
        jTextField3.setText("");
    }


    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        //Bikin variabel float
        float num1, num2, result;
        //Merubah String field ke float
        num1= Float.parseFloat(jTextField1.getText());
        num2= Float.parseFloat(jTextField2.getText());
        //Membuat hasil penjumlahannya dalam variabel result
        result= num1+ num2;
        //Membawa nilai result ke jTextField3 dan merubahnya ke String
        jTextField3.setText(String.valueOf(result));
    }


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


    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    // End of variables declaration
}


Tentu saja kita ga bakalan nulis semua kode tersebut. Tapi kita cuma nambahin kode-kode handling untuk setiap ActionListener nya. Tinggal ngedesain UI programnya terus tambahin kode handling nya. Sisa dari kodenya akan di-generate sama NetBeans (Thanks a lot to NetBeans that makes the coding much simpler :))





Alphabet7.blogspot.com

Pos populer dari blog ini

Kumpulan Script Pascal

Pada kesempatan ini penulis ingin menuliskan beberapa script Pascal yang penulis buat sendiri. Namun penulis mohon maaf bila terdapat kekurangan pada script-script dibawah ini mengingat penulis sendiri masih belajar dalam pemrograman Pascal. Script-script dibawah ini ditujukan untuk compiler Turbo Pascal For Windows 1.5 dan telah penulis coba sendiri keberhasilannya. Namun bila anda memiliki saran untuk penulisan script-script dibawah ini atau memiliki kritik terhadap script-script ini, anda dapat mengirimkan penulis e-mail, maupun comment terhadap posting ini. Bagi anda yang belum memiliki compiler Turbo Pascal For Windows 1.5, anda dapat mendownloadnya di http://community.borland.com/article/0,1410,20803,00.html . Baiklah, selamat mencoba.
(Seluruh script yang terdapat pada artikel ini bebas untuk digunakan, disalin, dimodifikasi, maupun disebarluaskan selama tidak disalahgunakan untuk kejahatan.)
Program DiskriminanPersamaanKuadrat
Masih ingatkah anda terhadap pelajaran Diskriminan Pe…

"Program Login" Menggunakan Pascal

Setelah lama ga ketemu Pascal. Penulis iseng-iseng nyobain untuk ngoprek-ngoprek lagi program Pascal. Dan sesuai dugaan, banyak materi dan kode-kode yang penulis udah lupa dari pascal :p
Kali ini penulis nyoba bikin program (tepatnya sebagian kecil program :p) untuk sistem login. Ya, cuma program iseng-iseng aja sih, ga memiliki nilai guna pada dasarnya, tapi lumayan buat yang masih baru-baru mau mencoba pemrograman Pascal :)
Prinsip kerja program ini simple (seperti sistem login pada umumnya, namun dengan keamanan yang sangat rendah, maklum amatir ^^v). Pertama, pengguna menginputkan data username dan passwordnya, lalu program akan memverifikasikannya, jika benar maka pengguna akan dibawa ke layar berikutnya. Namun jika salah, maka pengguna memiliki kesempatan 2 kali untuk mengulang menginputkan datanya.

My Third Java Program: "Program Menghitung IP Mahasiswa"

Masih berkutat di dunia Java. Kali ini penulis mencoba bereksperimen dengan JTable. Setelah 2-3 hari pusing ngutak-atik JTable (maklum masih newbie ^_^), nyari-nyari cara buat meng-inputkan data ke dalam tabel itu, akhirnya dapet juga petuah dari orang yang udah mahir Java di forum DIC (dreamincode.net).
Here's a sneak peek at the program :)