Langsung ke konten utama

Second Java Program: Simple Calculator (Developed with Radio Button)

"Back to NetBeans"
After completing my first Java program, Simple Calculator, I tried to develop it with some more stuff. This time, the idea is about the Radio Button. I got little busy of googling when I came up with this idea. It came with a little problem that I had no idea how to make these Buttons stuff to become a group, in order to make the buttons cannot be chosen more than one option.

Light bulb :D.After a couple of minutes spending time browsing, googling (and a little Facebook-ing :p), I came up with this forum that (once again) came from the own application of this IDE, NetBeans.org. Click here or here to see the thread that I've been looking for.

Let the coding begin.





Here's the source code of the program.


public class KalkulatorSimpel extends javax.swing.JFrame {

    /** Creates new form KalkulatorSimpel */
    public KalkulatorSimpel() {
        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() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        inputField1 = new javax.swing.JTextField();
        inputField2 = new javax.swing.JTextField();
        jRadioButton1 = new javax.swing.JRadioButton();
        jRadioButton2 = new javax.swing.JRadioButton();
        jRadioButton3 = new javax.swing.JRadioButton();
        jRadioButton4 = new javax.swing.JRadioButton();
        jLabel3 = new javax.swing.JLabel();
        jButton2 = new javax.swing.JButton();
        output = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jButton3 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Calculator"));

        jLabel1.setText("Input 1");

        jLabel2.setText("Input 2");

        buttonGroup1.add(jRadioButton1);
        jRadioButton1.setText("Penjumlahan");
        jRadioButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton1ActionPerformed(evt);
            }
        });

        buttonGroup1.add(jRadioButton2);
        jRadioButton2.setText("Pengurangan");
        jRadioButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton2ActionPerformed(evt);
            }
        });

        buttonGroup1.add(jRadioButton3);
        jRadioButton3.setText("Perkalian");
        jRadioButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton3ActionPerformed(evt);
            }
        });

        buttonGroup1.add(jRadioButton4);
        jRadioButton4.setText("Pembagian");
        jRadioButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton4ActionPerformed(evt);
            }
        });

        jLabel3.setText("Operasi");

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

        jLabel4.setText("Hasil");

        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.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel2)
                            .addComponent(jLabel3)
                            .addComponent(jLabel1))
                        .addGap(26, 26, 26)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jRadioButton1, javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(inputField2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE)
                            .addComponent(jRadioButton2, javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jRadioButton3, javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jRadioButton4, javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(inputField1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE)))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel4)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(output, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(inputField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(inputField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jRadioButton1)
                    .addComponent(jLabel3))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jRadioButton2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jRadioButton3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jRadioButton4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton2)
                    .addComponent(output, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4)))
        );

        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()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButton3, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 13, Short.MAX_VALUE)
                .addComponent(jButton3)
                .addContainerGap())
        );

        pack();
    }//

    private void jRadioButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
        float num1, num2, result;
        result=0;

        num1= Float.parseFloat(inputField1.getText());
        num2= Float.parseFloat(inputField2.getText());

        result= num1*num2;

        output.setText(String.valueOf(result));
    }                                             

    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:
        inputField1.setText("");
        inputField2.setText("");
        buttonGroup1.clearSelection();
        output.setText("");
    }                                        

    private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
        float num1, num2, result;
        result=0;

        num1= Float.parseFloat(inputField1.getText());
        num2= Float.parseFloat(inputField2.getText());

        result= num1+num2;

        output.setText(String.valueOf(result));
    }                                             

    private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
        float num1, num2, result;
        result=0;

        num1= Float.parseFloat(inputField1.getText());
        num2= Float.parseFloat(inputField2.getText());

        result= num1-num2;

        output.setText(String.valueOf(result));
    }                                             

    private void jRadioButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
        float num1, num2, result;
        result=0;

        num1= Float.parseFloat(inputField1.getText());
        num2= Float.parseFloat(inputField2.getText());

        result= num1/num2;

        output.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 KalkulatorSimpel().setVisible(true);
            }
        });
    }


    // Variables declaration - do not modify
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JTextField inputField1;
    private javax.swing.JTextField inputField2;
    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.JLabel jLabel4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JRadioButton jRadioButton1;
    private javax.swing.JRadioButton jRadioButton2;
    private javax.swing.JRadioButton jRadioButton3;
    private javax.swing.JRadioButton jRadioButton4;
    private javax.swing.JTextField output;
    // End of variables declaration

}

Isn't it beauty? :D
Well, as an newbie in Java programming, it's pretty difficult to make this kid's stuff. (In case the solution of the problem that I had is pretty hard to google, and I have no one backing me up for the questions spinning in my head -__-")

Here's the pictures of the beauty one :)

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 :)