blob: 4916c6e276f2401be2b7ecaa3f7959e10de1c212 [file] [log] [blame]
/*********************************************************
'* A simple four function calculator, written in JScript *
'*********************************************************/
// *** create a result window
var result = CreateBean("java.awt.TextField", "0")
// *** create a panel of buttons
var panel = CreateBean("java.awt.Panel");
panel.setLayout( CreateBean("java.awt.GridLayout", 4, 4));
buttons = new String("789*456/123-C0.+");
for( i= 0 ; i< buttons.length; ++i)
{
label = buttons.substring(i,i+1);
var button = CreateBean("java.awt.Button", label);
panel.add( button);
if(-1 != "*/-+".indexOf(label))
button.onaction="op(\"" + label + "\")";
else if (label=="C")
button.onaction="mem=0 ; nextOp=\"+\" ; result.text=\"0\";"
else
button.onaction="press(\"" + label + "\");"
}
// *** Place everything in the frame
frame.title = "JScript Calc";
frame.resize( 130, 200);
frame.add( "North", result );
frame.add( "Center", panel );
frame.validate()
// *** Initialize the state of the calculator
mem = 0
nextOp = "+"
autoClear = true
// *** handle data entry keys
function press (key)
{
if( autoClear ) result.text="0";
if(result.text=="0" && key!= "." ) result.text = "";
if( key=="." && (-1 != result.text.indexOf("."))) key="";
result.text = result.text + key;
autoClear=false;
}
// *** handle arithmetic keys
function op(key)
{
err=0;
num = parseFloat(result.text); //+0;
if( nextOp == "+" ) mem = mem + num;
if( nextOp == "-" ) mem = mem - num;
if( nextOp == "*" ) mem = mem * num;
if( nextOp == "/" ) mem = mem / num;
nextOp = key
result.text = "" + mem;
// If err>0 then result.text="ERROR" : mem=0 : nextOp="+"
autoClear=true;
}