Posted by : Unknown Friday 19 June 2015

 

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class PopupCalculatorApplet extends JApplet implements ActionListener 
{
  public void init() 
  {
    Button calcButton = new Button("Calculator");
    calcButton.addActionListener(this);
    Container contentPane = getContentPane();
    contentPane.add(calcButton);
  }

  public void actionPerformed(ActionEvent evt) 
  {
    if (calc.isVisible())
      calc.setVisible(false);
    else
      calc.show();
  }

  private JFrame calc = new CalculatorFrame();
}

class CalculatorPanel extends JPanel implements ActionListener 
{
  public CalculatorPanel() 
  {
    setLayout(new BorderLayout());

    display = new JTextField("0");
    display.setEditable(false);
    add(display, "North");

    JPanel p = new JPanel();
    p.setLayout(new GridLayout(4, 4));
    String buttons = "789/456*123-0.=+";
    for (int i = 0; i < buttons.length(); i++)
      addButton(p, buttons.substring(i, i + 1));
    add(p, "Center");
  }

  private void addButton(Container c, String s) 
  {
    JButton b = new JButton(s);
    c.add(b);
    b.addActionListener(this);
  }

  public void actionPerformed(ActionEvent evt) 
  {
    String s = evt.getActionCommand();
    if ('0' <= s.charAt(0) && s.charAt(0) <= '9' || s.equals(".")) 
    {
      if (start)
        display.setText(s);
      else
        display.setText(display.getText() + s);
      start = false;
    } 
    else 
    {
      if (start) 
      {
        if (s.equals("-")) 
        {
          display.setText(s);
          start = false;
        } else
          op = s;
      } 
      else 
      {
        calculate(Double.parseDouble(display.getText()));
        op = s;
        start = true;
      }
    }
  }

  public void calculate(double n) 
  {
    if (op.equals("+"))
      arg += n;
    else if (op.equals("-"))
      arg -= n;
    else if (op.equals("*"))
      arg *= n;
    else if (op.equals("/"))
      arg /= n;
    else if (op.equals("="))
      arg = n;
    display.setText("" + arg);
  }

  private JTextField display;
  private double arg = 0;
  private String op = "=";
  private boolean start = true;
}

class CalculatorFrame extends JFrame 
{
  public CalculatorFrame() 
  {
    setTitle("Calculator");
    setSize(200, 200);
    Container contentPane = getContentPane();
    contentPane.add(new CalculatorPanel());
  }
}


Output:

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Welcome to My Blog

Translate

Popular Post

Total Pageviews

Blog Archive

- Copyright © Learning Java Program - Powered by Blogger -