|
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
EpSilon |
proyecto |
 |
 |
 |
 |
 |
/** * Creado por : Mon Mar 24 20:27:00 CET 2008 * Autor : Parras */
import javax.swing.*; import java.awt.*; import java.awt.event.*;
public class Calculadora extends JFrame implements ActionListener {
boolean nuevo = true; float resultado_total = 0.0f; String ultimo = "="; Label pantalla = null; Button b; JPanel panel, panel2;
public Calculadora() { setTitle("Calculadora");
setSize(200, 200);
Pantalla();
Teclado(); }
private void Pantalla() {
panel = new JPanel(); panel.setLayout(new GridLayout(1, 1)); pantalla = new Label();
pantalla.setText("0"); pantalla.setAlignment(Label.RIGHT); pantalla.setForeground(Color.black); pantalla.setBackground(Color.white);
panel.add(pantalla); add("North", panel); }
public void Teclado () { panel2 = new JPanel(); panel2.setLayout(new GridLayout(4, 4));
addBoton("7", Color.blue);
|
 |
 |
 |
E:\Util\workspace\prueba\Workspace\proyecto |
 |
Página 1 de |
4 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
EpSilon |
proyecto |
 |
 |
 |
 |
 |
addBoton("8", Color.blue); addBoton("9", Color.blue); addBoton("/", Color.red); addBoton("C", Color.red);
addBoton("4", Color.blue); addBoton("5", Color.blue); addBoton("6", Color.blue); addBoton("*", Color.red); addBoton("sqrt", Color.red);
addBoton("1", Color.blue); addBoton("2", Color.blue); addBoton("3", Color.blue); addBoton("-", Color.red); addBoton("AC", Color.red);
addBoton("0", Color.blue); addBoton("+/-", Color.red); addBoton(".", Color.red); addBoton("+", Color.red); addBoton("=", Color.red);
add("Center", panel2); }
private void addBoton(String n, Color color) { b = new Button(n);
b.setForeground(color);
panel2.add(b);
b.addActionListener( this ); }
public void actionPerformed(ActionEvent event) {
String digit = event.getActionCommand(); String s = pantalla.getText();
// Logic based in a source of Santiago Pavón
float valor = 0; try { valor = new Float(s).floatValue(); } catch (Exception e) { if (!digit.equals("C")) return; }
if ("0123456789".indexOf(digit) != -1) {
if (nuevo) { nuevo = false;
|
 |
 |
 |
E:\Util\workspace\prueba\Workspace\proyecto |
 |
Página 2 de |
4 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
EpSilon |
proyecto |
 |
 |
 |
 |
 |
pantalla.setText(digit); } else { pantalla.setText(s + digit); }
} else if (digit.equals(".")) {
if (nuevo) { nuevo = false; pantalla.setText("0."); } else { pantalla.setText(s + digit); }
} else if (digit.equals("sqrt")) {
valor = (float)Math.sqrt(valor); pantalla.setText(String.valueOf(valor)); nuevo = true;
} else if (digit.equals("+/-")) {
valor = -valor; pantalla.setText(String.valueOf(valor)); nuevo = true;
} else if (digit.equals("C")) {
resultado_total = 0; pantalla.setText("0"); ultimo = "="; nuevo = true;
} else {
char c = ultimo.charAt(0);
switch (c) { case '=': resultado_total = valor; break; case '+': resultado_total += valor; break; case '-': resultado_total -= valor; break; case '*': resultado_total *= valor; break; case '/': resultado_total /= valor; break; } ultimo = digit; nuevo = true; pantalla.setText(String.valueOf(resultado_total)); } }
public static void main(String[] args) { Calculadora cal = new Calculadora(); Rectangle bounds = cal.getBounds(); Dimension size = cal.getSize();
|
 |
 |
 |
E:\Util\workspace\prueba\Workspace\proyecto |
 |
Página 3 de |
4 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
EpSilon |
proyecto |
 |
 |
 |
 |
 |
cal.setLocation((int) (bounds.getX() + (bounds.getWidth() - size.getWidth()) / 2), (int) (bounds.getY() + (bounds.getHeight() - size.getHeight()) / 2)); cal.setVisible(true); } } |
 |
 |
 |
E:\Util\workspace\prueba\Workspace\proyecto |
 |
Página 4 de |
4 |
 |
 |
| |