¡Urgente! ! ! Cómo implementar la interfaz de la calculadora usando el código del programa Java
¿Importado? java.awt.*;
¿Importar? Java.awt.event.*;
¿Público? ¿clase? Speedster_nuevo? ¿Utensilios? Oyente de acción
{
¿Panel? p 1; //Declarar panel p1
¿Campo de texto? t 1; //Línea de texto de declaración t1
Cadena[]? ¿Etiqueta? =?{"7","8","9","/","4","5","6","*","1","2","3","-" ,"0",".","=","+"};//Declare la matriz de etiquetas label1 para almacenar la etiqueta en el botón.
¿Botón[]? b; //Declara la matriz de botones para almacenar 16 botones.
¿Privado? int? i; //Declararlo para uso posterior
¿Privado? ¿Cadena? op1? =?"0";//Los operandos están reservados
¿Privado? ¿Cadena? ¿operador? =?"+";//Operador en espera
¿Privado? ¿Booleano? ¿Añadir? =?Falso; //en espera
¿Público? JiSuanQi_new()//Método de construcción
{
t 1 = ¿Nuevo? TextField(); //Inicializar línea de texto t1
b? =?¿Nuevo? Botón [longitud de la etiqueta]; //Inicializar matriz de botones b
p 1 = ¿Nuevo? panel(); //Inicializa el panel p1
p1.setLayout(new? GridLayout(4, 4, 4, 4)); //Deja que el panel elija almacenar 16 botones (4 filas y 4 columnas). ) Administrador de diseño de cuadrícula.
for(int? I = 0; i & ltb. length; i++) // Utilice un bucle for para etiquetar los botones, de modo que cada botón pueda agregar un detector de eventos, que se puede agregar en el panel p1 16 botones.
{
b[i]? =?¿Nuevo? button(label[I]); //Coloca etiquetas en los 16 botones en secuencia.
b[i]. addActionListener(this); //Agrega un detector de eventos de acción a cada botón.
p 1. agregar(b[I]);? //Añadir botones al panel p1 respectivamente.
}?
¿Marco? f = nuevo? Frame("Calculator 1.0 "); //Inicializa la ventana F, nombre Calculator 1.0
f.setLayout(new?BorderLayout()); //Selecciona el administrador de diseño de bordes de la ventana.
f.add(BorderLayout. North, t 1); //Agrega una línea de texto al norte de la ventana.
f.add(BorderLayout. Center, p 1); //Agrega la barra de fideos p1 en el medio de la ventana.
f.addWindowListener(new?WindowAdapter(){//Agregar un detector de eventos de ventana en la ventana f.
Public?Invalid?Window Close(WindowEvent?Eve){ //Ejecutar el método de cierre de ventana.
system .exit(0); //Salir del programa
}
});
f.setSize(250, ? 250);//Establecer tamaño de ventana
f.setLocation(200, 200);
f set visible(true);//Mostrar ventana
¿Público? ¿Electricidad estática? ¿Vacío? main(String? args[])
{
¿Nuevo? JiSuanQi_new();? //Llamar al constructor
}
¿Público? ¿Vacío? ¿Acción realizada (Evento de acción? Ae)?
Botón Acción{//.
¿Cadena? comunicación? =?AE . getactioncommand(); // Devuelve la cadena de comando relacionada con la acción, es decir, en qué botón hizo clic el usuario por primera vez.
if("0123456789 ".indexOf(comm)!=-1)//Si la cadena de comando relevante es un número entre 0 y 9, ejecútela.
{
if(append){
¿Cadena? ¿Trabajador temporal? =?t 1 . gettext(); //Nuevo número
t 1 . //Ejecuta esto porque append es falso en este momento.
t 1. settext(comunicación);? //Establece la línea de texto t1 en la cadena de comando relevante (el código del botón que presionaste).
¿Agregar? =Verdadero; //append=verdadero en este momento. Si continúa presionando la tecla y presiona el número, será 1. First News no va a cambiar. 2. Si no lo presiona por primera vez, el número presionado anteriormente se sobrescribirá (es decir, la desventaja: solo puede contar un número).
}
}
¿Y si? if(("+-*/".indexOf(comm)!=-1))//Si la cadena de comando relevante es un número entre +-*/
{
//Guardar
//t 1. settext(comm);
op1? =?t 1. gettext(); //Asignar el primer número a op1?
¿Operador? =?comm//Asignar cadena de comando al operador
¿Agregar? =? False; // Agregar es falso en este momento, es decir, si continúa presionando el botón, si presiona el número, se repetirá la acción anterior, si presiona el símbolo, se sobrescribirá el símbolo anterior.
}
¿Y si? Si("= "). igual (comm)) // Si se presiona el símbolo =, las siguientes operaciones se realizarán condicionalmente.
{
¿Cadena? op2? =?t 1. gettext(); //op2 segundo número
¿Doble? d1? =?doble . analizar doble(op 1);
¿Doble? d2? =?doble . analizar doble(op2);
if(operador . igual("+"){
d1?=?d1?+?d2?;
}¿Algo más? if(operator . equals("-"){
d1?=?d1?-?D2;
}¿Algo más? if(operator . es igual(" *)){
d1?=?d1?*?D2;
}¿Otro?{
d1?=?d1?/ ? D2;
}
t 1. settext(d 1+" "); //Mostrar el resultado del cálculo
Anexar? /p>
}
¿Qué pasa si (".".equals(comm))// Si.
{
¿Cadena? ¿Trabajador temporal? =?t 1 . gettext();
if(temp.indexOf(" . ")==-1){
t1.setText(temp+".");
¿Agregar? =?Verdadero;
}
}
}
}