Código fuente del programa de procesamiento de escritura a mano
Novato
14 de mayo 13:16 1 Nombre de archivo: Calculate_GUI.java
Importar javax.swing.*;
Importar Java.awt.container;
Importar Java.awt.event.*;
La clase pública Calculate_GUI extiende JFrame{
JPanel privado p 1 ;
Botón de tecla JButton privado[]= nuevo JButton[16], signButton, clearButton, deleteButton
Campo de salida JTextField privado
Panel de contenido del contenedor privado
Primera entrada booleana privada = true
Modelo Calculate_Model privado = nuevo Calculate_Model();
Calcule_GUI público(){
p 1 = nuevo JPanel() ;
botón clave[0]= nuevo JButton(" 1 ");
botón clave[1]= nuevo JButton(" 2 ");
botón clave[2]= nuevo JButton(" 3 ");
botón clave[3]= nuevo JButton("/");
botón clave[ 4]= nuevo JButton (" 4 ");
botón de tecla[5]= nuevo JButton(" 5 ");
botón de tecla[6]= nuevo JButton(" 6 "); p>
botón tecla[7]=nuevo JButton(" * ");
botón tecla[8]= nuevo JButton(" 7 ");
botón tecla[ 9]= nuevo JButton(" 8 ");
botón tecla[10]= nuevo JButton(" 9 ");
botón tecla[11] =nuevo JButton("- ");
botón clave[12]= nuevo JButton(" 0 ");
botón clave[13]=nuevo JButton(" . " );
botón de tecla[14]=nuevo JButton(" = ");
botón de tecla[15]=nuevo JButton("+");
borrar botón = nuevo JButton( " c ");
botón de signo = nuevo JButton("+/-");
botón de eliminación = nuevo JButton("↓" ;
salida campo = new JTextField(15);
campo de salida . settext(" 0 ");
campo de salida editable(false); = this . getcontentpane();
this.setSize(250, 250)
p 1 .
for(int I = 0;i<keyButton.lengthi++){
if(I = = 4)p 1. agregar(botón eliminar);
if (I == 8)p 1. agregar(botón borrar);
if(I == 12)p 1. agregar(botón firmar);
Botón clave[ i] . set font(new Java . awt . font(" Diálogo ", 1, 16));
p 1 . >
contentPane.add(outputField, Java . awt . borderlayout . norte);
contentPane.add(p1, Java . awt . borderlayout . center); show();
}
registent public void(){
this . addwindowlistener(adaptador de nueva ventana(){
public cierre de ventana nula (evento de ventana nosotros){ system . exit(0);}
});
for(int I = 0; i<keyButton.lengthi++){ p>
Botón de llave [i]. addActionListener(new keyButtonHandler());
}
botón de signo addactionlistener(new action listener(){
acción de anulación pública realizada (evento de acción AE) {
campo de salida . settext(string . valor de(model . to sign(double . parse double(campo de salida . gettext()))));
}
});
botón de eliminación. addactionlistener(nuevo oyente de acción(){
acción de anulación pública realizada (evento de acción AE){
salida. campo . settext(modelo . back space(campo de salida . gettext()));
if(outputField.getText().
igual(" 0 "))primera entrada = true;
}
});
borrar botón addactionlistener(nuevo oyente de acción(){ p>
p>
acción de anulación pública realizada (evento de acción AE){
firstInput = true
campo de salida settext(" 0 ");
model . reset();
}
});
}
La clase keyButtonHandler implementa ActionListener{ p>
acción de anulación pública realizada (evento de acción AE){
comando de acción char = AE comando getaction(). charAt(0);
Cambiar (comando de acción) {
Caso "1": caso "2": caso "3": caso "4": caso Escribir "5" : caso "6": caso "7": caso "8": caso "9": caso "0": caso.
”:
if(primera entrada){ campo de salida. settext(cadena. valor de(comando de acción)); primera entrada = false}
else settext(campo de salida). gettext()+comando de acción);
Romper;
Caso '+': caso '-': caso ' * ': caso '/': p>
if(primera entrada)model . set operar(comando de acción);
De lo contrario {
model .setoperatenumber(double . parse double(campo de salida . gettext() )); /p>
modelo. calculando();
modelo. establecer operar(comando de acción);
campo de salida. )));
firstInput = true
}
Descanso;
Caso "=":
p>if(firstInput){
modelo. calculando();
campo de salida. settext(cadena. valor de(modelo. obtener resultado()));
}
De lo contrario {
model . setoperatenumber(double . parse double(output field . gettext()));
model . ;
campo de salida . settext(cadena . valor de(modelo . obtener resultado()));
primera entrada = true
} p>
} } }
Public static void main(String args[]){
Nuevo Calculate_GUI().
RegisterEvent();
}
}
2 Nombre de archivo Calculate_Model.java
Clase pública Calculate_Model{
Resultado doble privado;
Operando doble privado;
Operación de carga privada;
Calcule_Model público(){
Resultado = 0;
número de operador = 0;
operar = "";
}
public void setResult(doble n){ p >
Resultado = n;
}
public void setOperate(char o){
operate = o;
}
public void setOperateNumber(double n){
operate number = n;
}
public double getResult(){< / p>
Devolver resultados;
}
Cálculo de anulación pública(){
Cambio (operación){
Caso " ":resultado = operarNúmero se rompe;
case "+":resultado+= operar número; se rompe;
case '-':resultado-= operar número; se rompe;
case "*":resultado * = número de operador;
case "/":resultado/= número de operador;
}
}
Restablecimiento de anulación pública(){
resultado = 0;
número de operador = 0
operar = " ";
}
Símbolo doble público (doble n) {
Devuelve 0-(n-0);
}
Retroceso de cadena pública(cadena n){
Cadena reResult = " 0
Prueba {
reResult=n.substring (0, n . longitud()-1);
doble. analizar doble(re resultado);
}
catch(NumberFormatException e){ re resultado = " 0 ". ;}
Devolver resultado
}
}
Dos archivos en el mismo directorio;
cómputo javac _ GUI. Java
modelo informático javac. java
interfaz de usuario java computacional
.