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) { } } }
Ads