Professional Documents
Culture Documents
Use a grid
layout to arrange buttons for the digits and for the + * %
operations. Add a text field to display the result.
Source Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code="Cal" width=300 height=300>
</applet>
*/
public class Cal extends Applet
implements ActionListener
{
String msg=" ";
int v1,v2,result;
TextField t1;
Button b[]=new Button[10];
Button add,sub,mul,div,clear,mod,EQ;
char OP;
public void init()
{
Color k=new Color(120,89,90);
setBackground(k);
t1=new TextField(10);
t1.setText(t1.getText()+str);
else
if(str.equals("add"))
{
v1=Integer.parseInt(t1.getText());
OP='+';
t1.setText("");
}
else if(str.equals("sub"))
{
v1=Integer.parseInt(t1.getText());
OP='-';
t1.setText("");
}
else if(str.equals("mul"))
{
v1=Integer.parseInt(t1.getText());
OP='*';
t1.setText("");
}
else if(str.equals("div"))
{
v1=Integer.parseInt(t1.getText());
OP='/';
t1.setText("");
}
else if(str.equals("mod"))
{
v1=Integer.parseInt(t1.getText());
OP='%';
t1.setText("");
}
if(str.equals("EQ"))
{
v2=Integer.parseInt(t1.getText());
if(OP=='+')
result=v1+v2;
else if(OP=='-')
result=v1-v2;
else if(OP=='*')
result=v1*v2;
else if(OP=='/')
result=v1/v2;
else if(OP=='%')
result=v1%v2;
t1.setText(""+result);
}
if(str.equals("clear"))
{
t1.setText("");
}
}
}
Designing Part
import java.applet.*;
import java.awt.*;
public class KeyPad1 extends Panel
{
TextField display;
// Readout
Panel keys;
// Key Pad
int maxLength = 20;
String output = "0";
//
// Result of calc.
// Function currently being performed
public KeyPad1()
{
setLayout( new BorderLayout() );
setFont( new Font("Helvetica", Font.PLAIN, 12) );
setBackground(Color.lightGray);
display = new TextField(maxLength+1);
display.setEditable(false);
display.setFont( new Font("Helvetica", Font.PLAIN, 12) );
display.setBackground(Color.white);
keys = new Panel();
keys.setLayout( new GridLayout(5,5) );
keys.setFont( new Font("Helvetica", Font.PLAIN, 12) );
keys.setBackground(Color.lightGray);
keys.add(
keys.add(
keys.add(
keys.add(
keys.add(
new
new
new
new
new
Button("+/-") );
Button("") );
Button("") );
Button("") );
Button("AC") );
keys.add(
keys.add(
keys.add(
keys.add(
keys.add(
new
new
new
new
new
Button("M+") );
Button("7") );
Button("8") );
Button("9") );
Button("/") );
keys.add(
keys.add(
keys.add(
keys.add(
keys.add(
new
new
new
new
new
Button("M-") );
Button("4") );
Button("5") );
Button("6") );
Button("x") );
keys.add(
keys.add(
keys.add(
keys.add(
keys.add(
new
new
new
new
new
Button("MR") );
Button("1") );
Button("2") );
Button("3") );
Button("-") );
show();
} // End init()
public void updateDisplay()
{
String output_right = "";
{
if (evt.arg == "AC")
{
result = 0;
output = Float.toString(result);
function = "";
newNumber = true;
decimal = false;
finished = true;
updateDisplay();
}
if (evt.arg == "+/-")
{
// Flip sign of displayed number
float val = Float.valueOf(output).floatValue();
val *= -1;
output = Float.toString(val);
updateDisplay();
}
if
if
if
if
if
if
if
if
if
if
if (evt.arg == ".")
if (output.length() < maxLength)
if (!decimal)
{
decimal = true;
if (output.length() == 0 || newNumber)
{
output = "0.";
newNumber = false;
}
else
output = output + ".";
updateDisplay();
}
if (evt.arg == "=")
key_equals();
if (evt.arg == "+")
{
evaluate();
function = "plus";
}
if (evt.arg == "-")
{
evaluate();
function = "minus";
}
if (evt.arg == "x")
{
evaluate();
function = "times";
}
if (evt.arg == "/")
{
evaluate();
function = "div";
}
if (evt.arg == "M+")
{
memory = true;
key_equals();
}
if (evt.arg == "M-")
{
memory = true;
key_equals();
}
if (evt.arg == "MR")
{
if (memory)
{
output = Float.toString(memoryValue);
updateDisplay();
}
}
if (evt.arg == "MC")
{
memory = false;
memoryValue = 0.0f;
updateDisplay();
}
if (output == "")
output = "0";
return false;
} // End handleEvent
} // Applet
APPLET CLASS
import java.applet.*;
import java.awt.*;
window.setTitle( "JavaCalc" );
// Set its title
window.setLayout( new FlowLayout() );
// Use FlowLayout
window.setFont( new Font("Helvetica",Font.PLAIN,12) );
window.setBackground(Color.white);
window.add( new KeyPad1() );
window.resize( window.preferredSize() );
window.pack();
window.show();
} // init()
} // Applet
/* <applet code="Calc1" height=400 width=400 ></applet> */
-------------------------- +++++++++++++++
------------------------------------------