// a simple calculator demonstration
// John Sklar, CED 512 - fall, 2k
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class calcstuff extends Applet implements ActionListener
{
TextField add1,add2;
Button plus = new Button ("+");
Button times = new Button ("X");
Button minus = new Button ("-");
Button divided = new Button ("÷");
Button clear = new Button("Clear");
Label answer, Banner;
Double d1,d2;
public void init()
{
Font bigFont = new Font("TimesRoman", Font.ITALIC, 24);
Font opFont = new Font("Courier", Font.BOLD, 24);
add1 = new TextField(10);
add2 = new TextField(10);
Banner = new Label ("-- Sklar's Calculator Demonstrator! --");
answer = new Label("Enter two numbers then press an operator");
plus.setFont(opFont);
times.setFont(opFont);
divided.setFont(opFont);
minus.setFont(opFont);
clear.setFont(opFont);
answer.setFont(bigFont);
Banner.setFont(bigFont);
add1.setFont(bigFont);
add2.setFont(bigFont);
add (Banner);
add (add1);
add (plus);
plus.addActionListener(this);
add (times);
times.addActionListener(this);
add (divided);
divided.addActionListener(this);
add (minus);
minus.addActionListener(this);
add (add2);
add (answer);
add (clear);
clear.addActionListener(this);
setBackground(Color.white);
clear.setEnabled(false);
}
public void actionPerformed (ActionEvent e)
{
Object source = e.getSource();
d1 = Double.valueOf(add1.getText());
d2 = Double.valueOf(add2.getText());
if (source == divided)
displayAnswer(d1.doubleValue() / d2.doubleValue()," divided by ");
if (source == minus)
displayAnswer(d1.doubleValue() - d2.doubleValue()," minus ");
if (source == times)
displayAnswer(d1.doubleValue() * d2.doubleValue()," times ");
if (source == plus)
displayAnswer(d1.doubleValue() + d2.doubleValue()," plus ");
if(source == clear){
add1.setText("");
add2.setText("");
answer.setText ("Enter two numbers then press an operator");
plus.setEnabled(true);
minus.setEnabled(true);
times.setEnabled(true);
divided.setEnabled(true);
clear.setEnabled(false);
}
}
public void displayAnswer(double temp,String msg)
{
answer.setText (d1.doubleValue() + msg + d2.doubleValue()
+ " = " +
String.valueOf((double)( Math.round(temp*10000))/10000 ) );
plus.setEnabled(false);
minus.setEnabled(false);
times.setEnabled(false);
divided.setEnabled(false);
clear.setEnabled(true);
}
}