Programación Java con números negativos
Importar Java.awt.event.*;
La clase pública Calculadora implementa ActionListener
{
Cuadro f;
Barra de menú MB 1;
Menú mf1, me1, mh1, MD 1;
Panel p1, p2, P3;
TextField tf1, tf2
Botones b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b12, b13, b14, b15, b16, b17, b18, b19. , b2
int Ms = 0; // Se usa para identificar M, Ms
double m = 0; // Se usa para lograr una operación continua.
Double k = 0; // Se utiliza para implementar el signo negativo.
Double cur = 0; //Valor usado para ahorrar memoria
Double k 1; //Usado para implementar el retroceso
Calculadora pública ()
{
f = nuevo marco("calculadora");
f.setSize(260, 200);
f .setLocation(320); , 320);
f . establecer diseño (nuevo BorderLayout());
f . establecer fondo (color . gris claro); new TextField(30);
TF 1. set editable(false);
tf1.setBackground(Color. blanco);
f.add(tf1 , BorderLayout Center);
p 1 = nuevo Panel(new BorderLayout()
f.add(p1, BorderLayout. Sur); p>
tf2 = Nuevo campo de texto(2);
tf2 .set editable(false);
b 1 = Nuevo botón ("Retroceso");
p>
b1.setForeground(Color.Red);
b2 =Nuevo Botón(" CE ");
b2.setForeground(Color.Red);
b3 = Nuevo botón(" C ");
b3.setForeground(color. rojo
B2 .addactionlistener(this); >
B3 . addactionlistener(this);
b 1 . addactionlistener(this);
p2 = nuevo panel (nuevo diseño de proceso (diseño de proceso. derecha)); /p>
p2 . agregar(tf2);
p2 . agregar( B3);
b24 = nuevo botón("MC");
b24.setForeground(color.rojo);
b24.addactionlistener(. esto);
b25 = nuevo botón(" MR ");
b25.setForeground(color.
rojo);
b25.addactionlistener(this);
b26 = nuevo botón("MS");
b26.setForeground(color.red);
b26 . addactionlistener(this);
b27 = Nuevo botón(" M ");
b27.setForeground(color. rojo
b27 . addactionlistener(this);
b 19 = Nuevo botón ("/");
b19.setForeground(color. rojo); p>b 19. addactionlistener(this);
b 18 = Nuevo botón (" * ");
b18.setForeground(color. red). >b 18. addactionlistener(this);
b 17 = Nuevo botón ("-"
b17.setForeground(color. rojo
); b 17. addactionlistener(this);
b 16 =Nuevo botón (" "
b16.setForeground(color. rojo
b 16); . addactionlistener(this);
b 14 = Nuevo botón (" /-"); addactionlistener(this); Nuevo botón (".");
b 15 . addactionlistener (this);
b20 = Nuevo botón (" sqrt "); (este);
b23 =Botón nuevo (" ");
b23 . x ");
b 21. addactionlistener(this);
b22 =Nuevo botón (" = ");
b22.setForeground(color.
rojo);
b22 . addactionlistener(this);
b4 = Nuevo botón (" 7 ");
b5 = Nuevo botón (" 8 ") ;
b6 =Botón nuevo (" 9 ");
b7 = Botón nuevo (" 4 ");
b9 = Nuevo botón (" 6 ");
b 10 = Nuevo botón (" 1 "); " 2 ");
b 12 = Botón Nuevo (" 3 ");
b 13 = Botón Nuevo (" 0 "); addactionlistener(este);
b5. addactionlistener(este);
B6. addactionlistener(este);
B7. >
b8 . addactionlistener(este);
B9 . addactionlistener(este);
b 10 . addactionlistener(este); addactionlistener(this);
b 12. addactionlistener(this);
b 13. addactionlistener(this);
p3 = nuevo panel (nuevo diseño de cuadrícula) (4, 6, 2, 2));
P3 . b5);
P3 . agregar(B6);
P3 . >
p>
P3 .añadir(b20);
P3 . >P3 . agregar (b8);
P3 . agregar(b23) . ;
P3 .agregar(b26);
P3 . p>P3 .añadir(b 12);
añadir(b 17);
añadir(b 21); (b27);
P3. agregar(b 13);
P3. agregar(b 14); /p>
P3 . agregar(b 16);
P3 . Norte);
p1.add(p3, BorderLayout. Centro);
f.add(p1, BorderLayout. Centro); p1, Diseño de borde.
Sur);
f . addwindowlistener(new WinClose());
f . ;
addmyMenu();
}
public void addmyMenu()
{
MB 1 = new MenuBar(); //Generar barra de menú
f . setmenubar(MB 1); //Agregar barra de menú en el marco f.
Mf1 =Nuevo menú("Editar(e)"); //Generar menú
Me1 =Nuevo menú("Ver(v)");
Mh1 = new menu("Ayuda(h)");
MB 1 add(MF 1); //Agregar menú a la barra de menú
MB 1 . 1);
MB 1. add(MH 1);
MF 1. add(new MenuItem(" copy "));// Genera elementos de menú y agrégalos en el menú.
Mf1.add(New Menu ("Paste"));
MF 1. addactionlistener(this); //Registra un detector de eventos para el menú
yo 1 . add(new MenuItem(" estándar "));
Me1. //Agregar línea separadora
Me1.add(new MenuItem);
me 1. addactionlistener(this);
Mh1.add(new menu (" Tema de ayuda"));
Mh1.add(new MenuItem("Acerca de la calculadora"));
MH 1. addactionlistener(this);
}
int flag = 0; //Identificador válido del operador
int num = 0; //Se utiliza para lograr una operación continua.
Punto doble = 0; // Se utiliza para identificar el punto decimal.
double primero=0, segundo=0, resultado = 0; //Se utiliza para guardar el primer número, el segundo número y el resultado del cálculo.
Doble pulsación; //Se utiliza para identificar si se presiona la tecla numérica.
Se ha realizado una operación pública no válida (evento de operación e)
{
if(e.getSource()==b3)
{tf1.setText("0.);
num = 0;
punto = 0;
push = 0;
bandera = 0;
primero = 0 }
Otros
if(e.getSource()==b4)
{
if(push==0.
)
TF 1 . settext(e . getactioncommand());
Otros
TF 1 . settext(TF 1 . gettext() e . getaction comando ());
push = 1;}
if(e.getSource()==b5)
{
si (push==0.)
TF 1 . settext(e . getactioncommand());
Otros
TF 1 . () e. comando getaction());
push = 1;}
if(e.getSource()==b6)
{ p>
if(push==0.)
TF 1 . settext(e . getactioncommand());
Otros
TF 1 . settext(TF 1 . gettext() e . getaction command());
push = 1;}
if(e.getSource()==b7)
{
if(push==0.)
TF 1. settext(e. getactioncommand());
Otros
TF 1 . settext(TF 1 . gettext() e . getaction command());
push = 1;}
if(e.getSource()== b8)
{
if(push==0.)
TF 1. settext(e. getactioncommand());
Otros
TF 1. settext(TF 1. gettext() e. getaction command());
push = 1;}
if(e .getSource()==b9)
{
if(push==0.)
TF 1 .
Otros
TF 1 . settext(TF 1 . gettext() e . getaction command()
push = 1;
if(e.getSource()==b10)
{
if(push==0. )
TF 1 . settext(e . getactioncommand());
Otros
TF 1 . settext(TF 1 . gettext() e . getaction comando ());
push = 1;}
if(e . getsource()= = b 11)
{
si(empuje==0.
)
TF 1 . settext(e . getactioncommand());
Otros
TF 1 . settext(TF 1 . gettext() e . getaction comando ());
push = 1;}
if(e.getSource()==b12)
{
si (push==0.)
TF 1 . settext(e . getactioncommand());
Otros
TF 1 . () e. comando getaction());
push = 1;}
if(e.getSource()==b13)
{ p>
if(push==0.)
TF 1 . settext(e . getactioncommand());
Otros
TF 1 . settext(TF 1 . gettext() e . getaction command());}
if(e . getsource()= = b26 | | e . getsource()= = b27)
{
tf2 . settext(" M ");
cur = double . parse double(TF 1 . gettext());
ms = 1;
}
if(e.getSource()==b25)
{
Si (Ms==1)
TF 1. settext(double. tostring(cur));
Otros
tf1.setText("0.
);
}
if(e.getSource()==b24)
{
tf2 . ;
ms = 0;
}
if(e.getSource()==b14)
{
k = doble . analizar doble(TF 1 . gettext());
k =-k
TF 1 .
}
if(e.getSource()==b15)
{
push = 1;
if(punto==0)
TF 1 . settext(TF 1 . gettext() e . getaction command()
Otros
TF 1 . settext(TF 1 . gettext());
punto = }
if(e.getSource()==b16)
{
bandera = 1;
primero = doble. analizar doble(TF 1. gettext()); p>push = 0;
}
if(e.getSource()==b17)
{
bandera = 2 ;
primero = doble . parse double(TF 1 . gettext());
punto = 0
push = 0; p>}
if(e.getSource()==b18)
{
bandera = 3;
primero = doble . analizar doble(TF 1 . gettext());
punto = 0
push = 0; (e.getSource()==b19)
{
bandera = 4;
primero = doble. analizar doble (TF 1. gettext()) ;
punto = 0;
push = 0
}
if(e.getSource()==b21)
{
bandera = 5;
primero = doble . analizar doble(TF 1 . gettext()); ;
push = 0;
}
if(e.getSource()==b23)
{
bandera = 6;
primero = doble . parse double(TF 1 . gettext());
punto = 0; ;
}
if(e.getSource()==b20)
{
bandera = 7;
primero = doble
e . analizar doble(TF 1 . gettext());
punto = 0
push = 0; if(e.getSource()==b22)
{
segundo = double . parse double(TF 1 . gettext());
if ( cantidad==0)
m = segundos;
num = 1;
Interruptor (bandera)
{
Caso 0: Roto;
Caso 1: Resultado = primero y segundo;
primero = m;
TF 1. settext(string. value of(resultado));
Pausa;
Caso 2: segundos = m;
Resultado = primer-segundo;
primero = resultado;
TF 1. settext(string. valor de(resultado));
Pausa;
Caso 3: resultado = primero *Segundo;
primero = m;
TF 1. settext(cadena. valor de(resultado));
Pausa;
Caso 4: If (segundos == 0)
Tf1.setText ("El divisor no puede ser 0 ");
Otros
{segundos = m ;
Resultado = primero/segundo;
primero = resultado;
TF 1. settext(cadena. valor de(resultado));}
Pausa ;
Caso 5: if(first==0)
Tf1.setText("0 no tiene recíproco");
Otros
{ resultado = 1/primero;
primero = resultado;
TF 1 . ;
Caso 6: resultado = primero/100;
primero = resultado;
TF 1. settext(cadena. valor de(resultado));
Break;
Caso 7: if (first lt; 0)
Tf1.setText("Los números negativos no se pueden elevar al cuadrado"); p>else { resultado = math . sqrt(first);
first = resultado;
TF 1 .
Romper;
}
punto = 0;
empuje = 0; if(e.getSource()==b2)
{
tf1.setText("0.
);
}
if(e.getSource()==b1)
{
k 1 = analizar doble. (TF 1 . gettext());
if(k1==0)
TF 1 . settext(double . tostring(k 1));
cadena s = TF 1 . gettext();
int I
I = s longitud()
s=s.substring(0). , I-1);
I = I-1;
Si (i==0)
tf1.setText("0.);
Otros
TF 1. settext;
push = 0;
punto = 0
}<; /p>
}
Public static void main(String arg[])
{
Nueva calculadora();
}
}
La clase WinClose extiende WindowAdapter
{
Cierre de ventana de anulación pública (WindowEvent e)
{
sistema . salida(0);
}
}