Calculator in Java with Source Code


package Thirdlecture;

import java.awt.Component;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton; 

/**

 *

 * @author Bahar

 */

public class Calculator extends javax.swing.JFrame {

    /**

     * Creates new form Calculator

     */

    public Calculator() {

        initComponents();

        addAction();

    }


       public ActionListener creatAction (final JButton button){

        ActionListener acLi = new ActionListener(){

            @Override

            public void actionPerformed(ActionEvent e) {

            area.setText(area.getText()+button.getText());

          }

  

        };

        return acLi;

    }  

    

    //add action all buttons

    

    public void addAction(){

        

        Component[] components = jPanel1.getComponents();

        

        for (Component component : components){

            

           if (component instanceof JButton) {

               

               JButton button = (JButton) component;

           

               button.addActionListener(creatAction (button));

           }

               

            

        }

    }

    

    

    /**

     * This method is called from within the constructor to initialize the form.

     * WARNING: Do NOT modify this code. The content of this method is always

     * regenerated by the Form Editor.

     */

    @SuppressWarnings("unchecked")

    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          

    private void initComponents() {


        jPanel1 = new javax.swing.JPanel();

        area = new javax.swing.JTextField();

        jButton1 = new javax.swing.JButton();

        jButton2 = new javax.swing.JButton();

        jButton3 = new javax.swing.JButton();

        jButton4 = new javax.swing.JButton();

        jButton7 = new javax.swing.JButton();

        jButton8 = new javax.swing.JButton();

        jButton9 = new javax.swing.JButton();

        jButton10 = new javax.swing.JButton();

        jButton13 = new javax.swing.JButton();

        jButton14 = new javax.swing.JButton();

        jButton17 = new javax.swing.JButton();

        jButton18 = new javax.swing.JButton();

        jButton20 = new javax.swing.JButton();

        jButton21 = new javax.swing.JButton();

        jButton22 = new javax.swing.JButton();

        jButton24 = new javax.swing.JButton();

        jLabel1 = new javax.swing.JLabel();

        jButton5 = new javax.swing.JButton();

        jButton6 = new javax.swing.JButton();


        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

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


        jPanel1.setBackground(new java.awt.Color(153, 153, 153));

        jPanel1.setForeground(new java.awt.Color(153, 51, 255));


        area.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N

        area.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                areaActionPerformed(evt);

            }

        });


        jButton1.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton1.setText("+");


        jButton2.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton2.setText("0");


        jButton3.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton3.setText("8");


        jButton4.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton4.setText("4");


        jButton7.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton7.setText("-");


        jButton8.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton8.setText("1");


        jButton9.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton9.setText("5");


        jButton10.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton10.setText("9");


        jButton13.setFont(new java.awt.Font("Times New Roman", 1, 24)); // NOI18N

        jButton13.setText(".");


        jButton14.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton14.setText("6");


        jButton17.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton17.setText("2");


        jButton18.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton18.setText("*");


        jButton20.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton20.setText("=");


        jButton21.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton21.setText("3");


        jButton22.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton22.setText("/");


        jButton24.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

        jButton24.setText("7");


        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N

        jLabel1.setForeground(new java.awt.Color(255, 255, 51));

        jLabel1.setText("Bahar New Calculator");


        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)

                    .addComponent(area)

                    .addGroup(jPanel1Layout.createSequentialGroup()

                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addComponent(jButton1)

                            .addComponent(jButton2)

                            .addComponent(jButton3)

                            .addComponent(jButton4))

                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

                            .addComponent(jButton8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                            .addComponent(jButton9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                            .addComponent(jButton10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                            .addComponent(jButton7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

                        .addGap(14, 14, 14)

                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

                            .addComponent(jButton14, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                            .addComponent(jButton17, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                            .addComponent(jButton18, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                            .addComponent(jButton13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 20, Short.MAX_VALUE)

                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addComponent(jButton22)

                            .addComponent(jButton20)

                            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)

                                .addComponent(jButton24, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                                .addComponent(jButton21, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))))

                .addContainerGap())

            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()

                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 202, javax.swing.GroupLayout.PREFERRED_SIZE)

                .addGap(19, 19, 19))

        );

        jPanel1Layout.setVerticalGroup(

            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addGroup(jPanel1Layout.createSequentialGroup()

                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addComponent(area, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                        .addGroup(jPanel1Layout.createSequentialGroup()

                            .addComponent(jButton1)

                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                            .addComponent(jButton2)

                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                            .addComponent(jButton4)

                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                            .addComponent(jButton3))

                        .addGroup(jPanel1Layout.createSequentialGroup()

                            .addComponent(jButton7)

                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                            .addComponent(jButton8)

                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                            .addComponent(jButton9)

                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                            .addComponent(jButton10))

                        .addGroup(jPanel1Layout.createSequentialGroup()

                            .addComponent(jButton18)

                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                            .addComponent(jButton17)

                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                            .addComponent(jButton14)

                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                            .addComponent(jButton13)))

                    .addGroup(jPanel1Layout.createSequentialGroup()

                        .addComponent(jButton22)

                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                        .addComponent(jButton21)

                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                        .addComponent(jButton24)

                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                        .addComponent(jButton20)))

                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

        );


        jButton5.setBackground(new java.awt.Color(204, 204, 204));

        jButton5.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N

        jButton5.setForeground(new java.awt.Color(255, 51, 51));

        jButton5.setText("Reset");

        jButton5.setAutoscrolls(true);


        jButton6.setBackground(new java.awt.Color(255, 51, 51));

        jButton6.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N

        jButton6.setForeground(new java.awt.Color(255, 255, 255));

        jButton6.setText("Clear");

        jButton6.setAutoscrolls(true);


        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

        getContentPane().setLayout(layout);

        layout.setHorizontalGroup(

            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

            .addGroup(layout.createSequentialGroup()

                .addContainerGap()

                .addComponent(jButton5)

                .addGap(49, 49, 49)

                .addComponent(jButton6)

                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

        );

        layout.setVerticalGroup(

            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)

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(jButton5)

                    .addComponent(jButton6))

                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

        );


        pack();

    }// </editor-fold>                        


    private void areaActionPerformed(java.awt.event.ActionEvent evt) {                                     

        // TODO add your handling code here:

    }                                    


    /**

     * @param args the command line arguments

     */

    public static void main(String args[]) {

        /* Set the Nimbus look and feel */

        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">

        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 

         */

        try {

            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {

                if ("Nimbus".equals(info.getName())) {

                    javax.swing.UIManager.setLookAndFeel(info.getClassName());

                    break;

                }

            }

        } catch (ClassNotFoundException ex) {

            java.util.logging.Logger.getLogger(Calculator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

        } catch (InstantiationException ex) {

            java.util.logging.Logger.getLogger(Calculator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

        } catch (IllegalAccessException ex) {

            java.util.logging.Logger.getLogger(Calculator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

        } catch (javax.swing.UnsupportedLookAndFeelException ex) {

            java.util.logging.Logger.getLogger(Calculator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

        }

        //</editor-fold>


        /* Create and display the form */

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Calculator().setVisible(true);

            }

        });

    }


    // Variables declaration - do not modify                     

    private javax.swing.JTextField area;

    private javax.swing.JButton jButton1;

    private javax.swing.JButton jButton10;

    private javax.swing.JButton jButton13;

    private javax.swing.JButton jButton14;

    private javax.swing.JButton jButton17;

    private javax.swing.JButton jButton18;

    private javax.swing.JButton jButton2;

    private javax.swing.JButton jButton20;

    private javax.swing.JButton jButton21;

    private javax.swing.JButton jButton22;

    private javax.swing.JButton jButton24;

    private javax.swing.JButton jButton3;

    private javax.swing.JButton jButton4;

    private javax.swing.JButton jButton5;

    private javax.swing.JButton jButton6;

    private javax.swing.JButton jButton7;

    private javax.swing.JButton jButton8;

    private javax.swing.JButton jButton9;

    private javax.swing.JLabel jLabel1;

    private javax.swing.JPanel jPanel1;

    // End of variables declaration                   

}


Post a Comment

0 Comments