Red de conocimiento informático - Espacio del host - Programación java manuscrita

Programación java manuscrita

Respuesta: Napoleón

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

Private booleano firstInput = 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 ");

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 .

/p>

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++){

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>

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{

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 '/':

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(cadena. valor de(modelo. obtener resultado). )));

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(string . value of(model . get result()));

firstInput = true

}

} } }

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){

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 vacío público(){

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.

interfaz de usuario java compute_graphical

.