como crear una calculadora en AWT y en APPLET

aki les dejo unos codigos para los que les dejan trabajos escolares de crear una calculadora usando java o visual basic espero y les sea de ayuda saludos...

primero el AWT

Import java. Awt. *;
import java.awt.event. *;
public class Calculadora extends Frame
{
Button bn[]=new Button[10];
Button bn2[]=new Button[4];
Button igual=new Button("=" ) ;
TextField txt1=new TextField() ;
int num1=0;
char ope;
public Calculadora()
{
setLayout(new FlowLayout()) ;
int i=0;
for (i=0;i<bn. Length;i++)
{
bn=new Button(String. ValueOf(i+1)) ;
bn. AddActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
escribirNumero(e) ;
}
}) ;
add(bn) ;
}
for (i=0;i<bn2. Length;i++)
{
bn2=new Button() ;
switch(i)
{
case 0:
bn2. SetLabel("+" ) ;
break;
case 1:
bn2. SetLabel("*" ) ;
break;
case 2:
bn2. SetLabel("-" ) ;
break;
case 3:
bn2. SetLabel("/" ) ;
break;
}
bn2. AddActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
almacenarOperador(e) ;
}
}) ;
add(bn2) ;
}
igual. AddActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
mostrarResultado(e) ;
}
}) ;
add(igual) ;
add(txt1) ;
}
public void escribirNumero(ActionEvent e)
{
Button boton=(Button)(e. GetSource()) ;
txt1. SetText(txt1. GetText()+boton. GetLabel()) ;
}
public void almacenarOperador(ActionEvent e)
{
Button boton=(Button)(e. GetSource()) ;
ope=boton. GetLabel(). CharAt(0) ;
num1=Integer. ParseInt(txt1. GetText()) ;
txt1. SetText( "" ) ;
}
public void mostrarResultado(ActionEvent e)
{
int num2=Integer. ParseInt(txt1. GetText()) ;
int res=0;
switch (ope)
{
case '+':
res=num1+num2;
break;
case '-':
res=num1-num2;
break;
case '*':
res=num1*num2;
break;
case '/':
res=num1/num2;
break;
}
txt1. SetText(String. ValueOf(res)) ;
}
public static void main (String args[])
{
Calculadora c=new Calculadora() ;
c. SetVisible(true) ;
}
}


segudo el APPLET

Import java. Util. *;
import java. Awt. *;
import java. Applet. *;

/**
* Calculadora sencilla
*/
public class Calc extends Applet {

Display display = new Display() ;

/**
* inicializa el applet Calc
*/
public void init () {

SetLayout(new BorderLayout()) ;
Keypad keypad = new Keypad() ;

Add ("North", display) ;
add ("Center", keypad) ;
}

/**
* manipulador para las funciones de la calculadora.
*/
public boolean action (Event ev, Object arg) {

If (ev. Target instanceof Button) {

String label = (String)arg;
if (label. Equals("C" )) {
display. Clear () ;
return true;
}
else if (label. Equals(". " )) {
display. Dot () ;
return true;
}
else if (label. Equals("+" )) {
display. Plus () ;
return true;
}
else if (label. Equals("-" )) {
display. Minus () ;
return true;
}
else if (label. Equals("x" )) {
display. Mul () ;
return true;
}
else if (label. Equals("/" )) {
display. Div () ;
return true;
}
else if (label. Equals("+/-" )) {
display. Chs () ;
return true;
}
else if (label. Equals("=" )) {
display. Equals () ;
return true;
}
else {
display. Digit (label) ;
return true;
}
}
return false;
}


/**
* Esto permite que la clase se use como applet o como aplicación independiente
*/
public static void main (String args[]) {

Frame f = new Frame ("Calculator" ) ;
Calc calc = new Calc ();

Calc. Init () ;

f. Resize (210, 200) ;
f. Add ("Center", calc) ;
f. Show () ;
}
}

/* -------------------------------------------------- */

/**
* Keypad manipula la entrada de datos y la visualización de resultados
*/
class Keypad extends Panel {

/**
* inicializa keypad, añade los botones, establece los colores, etc.
*/
Keypad (){

Button b = new Button() ;
Font font = new Font ("Times", Font. BOLD, 14) ;
Color functionColor = new Color (255, 255, 0) ;
Color numberColor = new Color (0, 255, 255) ;
Color equalsColor = new Color (0, 255, 0) ;
setFont (font) ;
b. SetForeground (Color. Black) ;

Add (b = new Button ("7" )) ;
b. SetBackground (numberColor) ;
add (b = new Button ("8") ;
b. SetBackground (numberColor) ;
add (b = new Button ("9" )) ;
b. SetBackground (numberColor) ;
add (b = new Button ("/" )) ;
b. SetBackground (functionColor) ;

Add (b = new Button ("4" )) ;
b. SetBackground (numberColor) ;
add (b = new Button ("5" )) ;
b. SetBackground (numberColor) ;
add (b = new Button ("6" )) ;
b. SetBackground (numberColor) ;
add (b = new Button ("x" )) ;
b. SetBackground (functionColor) ;

Add (b = new Button ("1" )) ;
b. SetBackground (numberColor) ;
add (b = new Button ("2" )) ;
b. SetBackground (numberColor) ;
add (b = new Button ("3" )) ;
b. SetBackground (numberColor) ;
add (b = new Button ("-" )) ;
b. SetBackground (functionColor) ;

Add (b = new Button (". " )) ;
b. SetBackground (functionColor) ;
add (b = new Button ("0" )) ;
b. SetBackground (numberColor) ;
add (b = new Button ("+/-" )) ;
b. SetBackground (functionColor) ;
add (b = new Button ("+" )) ;
b. SetBackground (functionColor) ;

Add (b = new Button ("C" )) ;
b. SetBackground (functionColor) ;
add (new Label ("" )) ;
add (new Label ("" )) ;
add (b = new Button ("=" )) ;
b. SetBackground (equalsColor) ;

SetLayout (new GridLayout (5, 4, 4, 4)) ;
}

}

/* -------------------------------------------------- */

/**
* la clase Display gestiona la visualización del resultado calculado y también
* implementa las tecla de fucnión de la calculadora
*/
class Display extends Panel{

Double last = 0;
int op = 0;
boolean equals = false;
int maxlen = 10;
String s;
Label readout = new Label("" ) ;

/**
* Inicializa display
*/
Display () {

SetLayout(new BorderLayout()) ;
setBackground (Color. Red) ;
setFont (new Font ("Courier", Font. BOLD + Font. ITALIC, 30)) ;
readout. SetAlignment(1) ;
add ("Center",readout) ;
repaint() ;
Clear () ;
}

/**
* manipulación del pulsado de un dígito
*/
void Digit (String digit) {
checkEquals () ;

/*
* quita los ceros precedentes
*/
if (s. Length () == 1 && s. CharAt (0) == '0' && digit. CharAt (0)! = '. ')
s = s. Substring (1) ;

If (s. Length () < maxlen)
s = s + digit;
showacc () ;
}

/**
* manipulación del punto decimal
*/
void Dot () {
checkEquals () ;

/*
* ya tiene un '.'
*/
if (s. IndexOf ('. ')! = -1)
return;

If (s. Length () < maxlen)
s = s + ". ";
showacc () ;
}

/**
* si el usuario pulsa = sin haber pulsado antes un operador
* (+,-,x,/), pone cero en la visualización
*/
private void checkEquals () {
if (equals == true) {
equals = false;
s = "0";
}
}

/**
* operador suma para uso posterior.
*/
void Plus () {
op = 1;
operation () ;
}

/**
* operador resta para uso posterior.
*/
void Minus () {
op = 2;
operation () ;
}

/**
* operador multiplicación para uso posterior.
*/
void Mul () {
op = 3;
operation () ;
}

/**
* operador división para uso posterior.
*/
void Div () {
op = 4;
operation () ;
}

/**
* Interpreta el valor de la visualización como double y lo almacena
* para uso posterior
*/
private void operation () {
if (s. Length () == 0) return;

Double xyz = Double. ValueOf (s) ;
last = xyz. DoubleValue () ;

Equals = false;
s = "0";
}
/**
* invalida el valor actual y revisualiza.
*/
void Chs () {
if (s. Length () == 0) return;

If (s. CharAt (0) == '-') s = s. Substring (1) ;
else s = "-" + s;

Showacc () ;
}

/**
* termina el último cálculo y visualiza el resultado
*/
void Equals () {
double acc;

If (s. Length () == 0) return;
Double xyz = Double. ValueOf (s) ;
switch (op) {
case 1:
acc = last + xyz. DoubleValue () ;
break;

Case 2:
acc = last - xyz. DoubleValue () ;
break;

Case 3:
acc = last * xyz. DoubleValue () ;
break;

Case 4:
acc = last / xyz. DoubleValue () ;
break;

Default:
acc = 0;
break;
}

S = new Double (acc). ToString () ;
showacc () ;
equals = true;
last = 0;
op = 0;
}

/**
* limpia la visualización y el último valor interno
*/
void Clear () {
last = 0;
op = 0;
s = "0";
equals = false;
showacc () ;
}

/**
* pide que se repinte el resultado
*/
private void showacc () {
readout. SetText(s) ;
repaint () ;
}
}


NOTA: los punto y coma y las entre comillas van juntos de los parentesis pero yo los separe xk m ponen los emoticones

6 comentarios - como crear una calculadora en AWT y en APPLET

@rcamv
Cansado de postear y no te den puntos pues aqui tengo la solucion
te invito a pasear por nuestra comunidad se otorgan 50 puntos por registro:
como crear una calculadora en AWT y en APPLET

http://cyber-xtreme.net

donde cada post tuyo es muy valioso ,te ofrecemos respeto ala hora de ver y comentar tu post, 5 puntos por cada post que postees y facilidad para subir de rango con la cantidad de post que cargues , cada aporte tuyo es muy valioso. bueno pasate no te vas a arrepentir
http://www.***/web_gear/***127606051
@wilder_14
graxias lo checare
despues subo como me keda
@a2brli
jala en ready to program amigo???