miércoles, 16 de enero de 2008

Calculando Con JAVA

Código Fuente De Un Applet De Una Calculadora En Java

Java
//importamos las bibliotecas necesarias para este programa

calculadoraimport java.util.*;
import java.awt.*;
//esta es muy importante porque es la que nos permitirá

//crear la aplicación en la maquina virtual como una applet

import java.applet.*;
//Calculadora sencilla

//creamos un clase llamada Calc
//que es subclase de Applet
public class Calc extends Applet {
//creamos una nueva vista
//display viene siendo una propiedad de la clase
Display display = new Display();/*** inicializa el applet Calc*/

//creamos un objeto publico init
public void init () {
//establecemos el area de la interfaz
setLayout(new BorderLayout());

//creamos un teclado
Keypad keypad = new Keypad();

//situamos las funciones display() y keypad()
add ("North", display);
add ("Center", keypad);}//manipulador para las funciones de la calculadora.

//creamos una funcion publica booleana
//con un evento ev y un objeto arg
public boolean action (Event ev, Object arg) {
//condicionamos si ev.destino es instancia de boton
if (ev.target instanceof Button) {
//declaramos la variable label tipo caracter
//y la asignamos al objeto arg
String label = (String)arg;

//los siguientes condicionales son usados para
//generar en pantalla el carácter correspondiente
//de la operación

//condicionamos la variable, si label.equals
// (equals es una función que se le asigna a
// la variable que compara dos valores) es igual
//a la letra C, de ser así llama a la clase display
//y ejecuta la función clear que borra la pantalla
//y por último retornamos el valor lógico cierto true
//así para cada uno
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 independientepublic static void main (String args[]) {
//creamos el marco dentro del cual se va
//construir la applet de la calculadora
//y creamos un objeto de la clase calc
Frame f = new Frame ("Calculator");
Calc calc = new Calc ();
//inicializamos
calc.init ();
//definimos las dimensiones de la applet
//ubicamos su posición en la pantalla
//y mostramosf.resize (210, 200);
f.add ("Center", calc);
f.show ();
}
}/* -------------------------------------------------- *///Keypad manipula la entrada de datos y la visualización de resultadosclass 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);
//añadimos un Nuevo botón para cada
//número y símbolo estableciendo
//el color de fondo declarado antes
//para cada unoadd (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 calculadoraclass Display extends Panel{double last = 0;
int op = 0;
boolean equals = false;
int maxlen = 10;
String s;
Label readout = new Label("");//Inicializa displayDisplay () {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 precedentesif (s.length () == 1 && s.charAt (0) == '0' && digit.charAt (0) != '.')
s = s.substring (1);if (s.length () < s =" s" s =" s" pulsa =" sin" equals ="=" equals =" false;" s = "0" op =" 1;" op =" 2;" op =" 3;" op =" 4;" xyz =" Double.valueOf" last =" xyz.doubleValue" equals =" false;" s = "0" s =" s.substring" s = "-" xyz =" Double.valueOf" acc =" last" acc =" last" acc =" last" acc =" last" acc =" 0;" s =" new" equals =" true;" last =" 0;" op =" 0;" last =" 0;" op =" 0;" s = "0" equals =" false;">

No hay comentarios: