Red de conocimiento informático - Material del sitio web - ¿Cómo diseñar una aplicación GUI en Java que pueda realizar operaciones de suma, resta, multiplicación, división y resto utilizando tecnología GUI?

¿Cómo diseñar una aplicación GUI en Java que pueda realizar operaciones de suma, resta, multiplicación, división y resto utilizando tecnología GUI?

prueba de paquete;

importar java.awt.*;

importar java.awt.event.*;

importar javax.swing.*;

la clase pública Z extiende JFrame implementa ActionListener, FocusListener {

cadena privada[] total = { "1", "2", "3", "+", "4", "5 ", "6", "-", "7", "8", "9", "*", "0", "." , "=", "/" }; // Matriz total

private String[] other = { "clear", "delete" }; // Otra matriz de funciones

private String[] símbolo = { "+", "-", "*" , "/" };//Matriz de símbolos

cadena privada multinúmero = "0", operador1 = "", existe = "", operador2 = nulo, s = ""

// multinúmero(multibit) operador1(operador) existe

private double d1, d2 = 0;

private int Count = 0

JPanel jptotal =; new JPanel(); // Panel total

JTextField jtexternal = new JTextField("0"); // Cuadro de texto externo

JTextField jtinside = new JTextField(); Cuadro de texto

JPanel jptop1 = new JPanel(); // Panel superior 1

JPanel jptop2 = new JPanel(); // TopPanel2

JPanel jpmiddle = new JPanel(); // MiddlePanel

public Z() {

jptotal.setLayout(new GridLayout(0, 2));

for (int i = 0; i < otro.longitud; i++) {

JButton jbi = nuevo JButton("" + otro[i]);

jbi.setSize(100, 10) ;

jptop2.add(jbi);

jbi.addActionListener(this);

}

jpmiddle.setLayout(nuevo GridLayout (4, 0));

for (int i = 0; i < total.length; i++) {

JButton jbi = new JButton("" + total[i] );

jpmiddle.add(jbi);

jbi.addAction

Oyente(este);

}

jtexternal.addFocusListener(este)addFocusListener(este);

jtexternal.add(jtinside);

jtinside.addFocusListener(this);

// La función de las tres líneas de código anteriores es hacer que el cuadro de texto no sea seleccionable

jptop1.add(jpmiddle);

add( jptotal);

setVisible(true);

setSize(500, 500);

this.setLocationRelativeTo(null);

this.setLocationRelativeTo(null);

this.setLocationRelativeTo(null);

this.setLocationRelativeTo(null); entonces se reemplazará el operador regular original. por el nuevo operador reemplazar

*/

}

}

} else if (!inputing.equals("+") && !inputing es igual("-") && !inputing.equals("*") && !inputing es igual("*") && ! t ser 0" ) || nuevo Doble(existe) == d1) {

if (input.equals(".")){

jtexternal.setText("0" + ingresando);

} else {

jtexternal.

}

d1 = nuevo Doble(multinúmero);

if (operator1.equals("+")) { // hacer operaciones cuadráticas

if (d2 == 0) {

if (operator1.equals("* "))| | operador1.equals("/")) {

d2 = 1;

}

}

}

// Ejecución, cuando no hay números después de los cuatro operadores, el resultado será el número antes del símbolo después de ingresar el signo igual. Si solo hay un número antes del símbolo, se imprimirá. por sí mismo

d1 = d1 + d2;

} else if (operator1.equals("-")) {

d1 = d2 - d1;

} else if (operador1. igual("*")) {

d1 = d1 * d2;

} else if (operador1.equals("/ ")) {

d1 = d2 / d1;

}

}

// Utilice la variable temporal f2 para implementar la operación secundaria

operador2 = ingresando;

} else if (!inputing.equals(" =")) { // [Operador cuadrático] Ingrese el signo igual y continúe

Cálculo

multinúmero = "0";

operador1 = ingresando;

d2 = d1;

operador2 = ingresando;

s = "";

Count = 0;

// Implementar operaciones decimales

} else { // Este es el resultado final de [=]< / p>

jtexternal.setText("" + d1);

Cuenta = 0;

s = "=";

multinúmero = " 0 ";

if (operator2.equals("0") && "/".equals(operator1)) {

operador2 = null;

d1 = 0; // Reemplazar valores de operación ilegales con valores correctos

Lanzar una nueva excepción aritmética (); // Especificar las condiciones para lanzar excepciones

// Cálculos de asignación no arrojará una excepción aritmética, si desea lanzar una excepción, debe especificar las condiciones para volver a lanzar la excepción

} else {

operator1 = inputing;

operador2 = null;

p>

d2 = 0;

}// Resultado del cálculo

if (inputing.equals("=") && (d1 == 0.0 || d2 == 0.0 )) {

return;

}

// El signo igual no se puede ingresar repetidamente

}

} catch (ArithmeticException e1) {

jtexternal.setText("El divisor no puede ser 0");

// Especifica el contenido de la excepción lanzada

}

}

}

public static void main(String[] args) {

new Z();

}

public void focusGained(FocusEvent e) {

jtinside.requestFocus ();

// Deje que el foco se centre en el cuadro de texto interno para lograr el externo. El cuadro de texto no se puede centrar

}

public void focusLost(FocusEvent e) {

}

}

}