import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class Calculator extends JFrame{

// Declare GUI components
   private JTextField jtfFirst;
   private JTextField jtfSecond;
   private JTextField jtfResult;
   private JLabel jlblFirst;
   private JLabel jlblSecond;
   private JLabel jlblResult;
   private JPanel entryPanel;
   private JPanel buttonPanel;
   private JButton jbtAdd;
   private JButton jbtSubtract;
   private JButton jbtMultiply;
   private JButton jbtDivide;

// main method to instantiate and customize frame
   public static void main(String[] args)
   {
       Calculator frame = new Calculator();
       frame.setTitle( "Four Function Calculator");
       frame.setSize( 500, 120 );
       frame.setLocation(400, 400);
       frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
       frame.setVisible(true);
   }
// GUI constructor
   public Calculator()
   {
       // Instantiate GUI components for top of frame
       jlblFirst = new JLabel( "First Number: ", JLabel.CENTER );
       jlblSecond = new JLabel( "Second Number: ", JLabel.CENTER );
       jlblResult = new JLabel( "Result: ", JLabel.CENTER );
       jtfFirst = new JTextField(5);
       jtfSecond = new JTextField(5);
       jtfResult = new JTextField(10);
       entryPanel = new JPanel();

       // make result text field uneditable
       jtfResult.setEditable( false );

       // Set layout manager of panel
       entryPanel.setLayout( new FlowLayout());

       // add GUI components to panel
       entryPanel.add( jlblFirst );
       entryPanel.add( jtfFirst );
       entryPanel.add( jlblSecond );
       entryPanel.add( jtfSecond );
       entryPanel.add( jlblResult );
       entryPanel.add( jtfResult );

       // add entryPanel to frame
       add(entryPanel);
       setLayout(new FlowLayout());

       // Instantiate GUI components for bottom of frame
       jbtAdd = new JButton( "Add" );
       jbtAdd.setVerticalTextPosition(AbstractButton.CENTER);
       jbtAdd.setHorizontalTextPosition(AbstractButton.LEADING);
       jbtAdd.setMnemonic(KeyEvent.VK_A);
       jbtSubtract = new JButton( "Subtract" );
       jbtSubtract.setVerticalTextPosition(AbstractButton.CENTER);
       jbtSubtract.setHorizontalTextPosition(AbstractButton.LEADING);
       jbtSubtract.setMnemonic(KeyEvent.VK_S);
       jbtMultiply = new JButton( "Multiply" );
       jbtMultiply.setVerticalTextPosition(AbstractButton.CENTER);
       jbtMultiply.setHorizontalTextPosition(AbstractButton.LEADING);
       jbtMultiply.setMnemonic(KeyEvent.VK_M);
       jbtDivide = new JButton( "Divide" );
       jbtDivide.setVerticalTextPosition(AbstractButton.CENTER);
       jbtDivide.setHorizontalTextPosition(AbstractButton.LEADING);
       jbtDivide.setMnemonic(KeyEvent.VK_D);
       buttonPanel = new JPanel();

       // add buttons to panel
       buttonPanel.add( jbtAdd );
       buttonPanel.add( jbtSubtract );
       buttonPanel.add( jbtMultiply );
       buttonPanel.add( jbtDivide );

       // add buttonPanel to frame
       add( buttonPanel, BorderLayout.SOUTH);

       //Event Handler
       jbtAdd.addMouseListener(new List_ButtonADD());
       jbtSubtract.addMouseListener(new List_ButtonSUB());
       jbtDivide.addMouseListener(new List_ButtonDIV());
       jbtMultiply.addMouseListener(new List_ButtonMUL());
   }



   private class List_ButtonADD implements MouseListener
   {
       public void mouseClicked(MouseEvent event)
       {
           double x=Double.parseDouble(jtfFirst.getText());
           double y=Double.parseDouble(jtfSecond.getText());
           jtfResult.setText(String.valueOf(x+y));
       }
       public void mousePressed(MouseEvent event)
       {
       }
       public void mouseReleased(MouseEvent event)
       {
       }
       public void mouseEntered(MouseEvent event)
       {
       }
       public void mouseExited(MouseEvent event)
       {
       }
   }
   private class List_ButtonDIV implements MouseListener
   {
       int cnt=0;
       public void mouseClicked(MouseEvent event)
       {
           double x=Double.parseDouble(jtfFirst.getText());
           double y=Double.parseDouble(jtfSecond.getText());
           jtfResult.setText(String.valueOf(x/y));;
       }
       public void mousePressed(MouseEvent event)
       {
       }
       public void mouseReleased(MouseEvent event)
       {
       }
       public void mouseEntered(MouseEvent event)
       {
       }
       public void mouseExited(MouseEvent event)
       {
       }
   }
   private class List_ButtonSUB implements MouseListener
   {
       int cnt=0;
       public void mouseClicked(MouseEvent event)
       {
           double x=Double.parseDouble(jtfFirst.getText());
           double y=Double.parseDouble(jtfSecond.getText());
           jtfResult.setText(String.valueOf(x-y));
       }
       public void mousePressed(MouseEvent event)
       {
       }
       public void mouseReleased(MouseEvent event)
       {
       }
       public void mouseEntered(MouseEvent event)
       {
       }
       public void mouseExited(MouseEvent event)
       {
       }
   }
   private class List_ButtonMUL implements MouseListener
   {
       int cnt=0;
       public void mouseClicked(MouseEvent event)
       {
           double x=Double.parseDouble(jtfFirst.getText());
           double y=Double.parseDouble(jtfSecond.getText());
           jtfResult.setText(String.valueOf(x*y));
       }
       public void mousePressed(MouseEvent event)
       {
       }
       public void mouseReleased(MouseEvent event)
       {
       }
       public void mouseEntered(MouseEvent event)
       {
       }
       public void mouseExited(MouseEvent event)
       {
       }
   }
}

Recommended Answers

Because your code doesn't include anything to process key events? (It only has listeners for mouse click events.)

Jump to Post

it's exactly the same as what you did with those MouseListeners

Jump to Post

All 6 Replies

Because your code doesn't include anything to process key events? (It only has listeners for mouse click events.)

im still begineer in java -_- can you teach me how ? and what is key event process.

add a KeyEventListener to a component, and implement the methods from the interface.

can you show some coding or source so i can refer -_- tq i appericiate.

it's exactly the same as what you did with those MouseListeners

ouhh okay tq :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.