Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo escribir una calculadora usando eclipse?

¿Cómo escribir una calculadora usando eclipse?

Eclipse generalmente usa java swing como interfaz. Las funciones de la calculadora requieren algunas funciones de herramienta. Los ejemplos son los siguientes: import?javax.swing.*;

importar java. awt.*;

importar?java.awt. event.*;

¿pública?clase?Calculator?extends?JFrame?implements?ActionListener{

privada ?ActionListener{

privado?static?final?long?serialVersionUID=?8199443193151152362L;

privado?JButton?boto_s=new?JButton("sqrt"),boto_zf=new ?JButton ("+/-"),bto_ce=nuevo?JButton("CE"),bto_c= nuevo?JButton("C"),bto_7=nuevo?JButton("7"),

bto_8= nuevo?JButton("8"),bto_9=nuevo?JButton("9"),bto_chu=nuevo?JButton("/"),bto_4=nuevo?JButton("4"),bto_5=nuevo?JButton( "5 "),

bto_6=nuevo?JButton("6"),bto_cheng=nuevo?JButton("*"),bto_1=nuevo?JButton("1"),bto_2=nuevo?JButton (" 2"),bt_3=nuevo?JButton("3"),

bt_jian=nuevo?JButton("-"),bt_0=nuevo?JButton("0"),bt_dian=nuevo? JButton( "."") ,bto_deng=new?JButton("="),bto_jia=new?JButton("+");

JButton?button[]={bto_s,bto_zf,bto_ce,bto_c ,bto_7 ,bto_8,bto_9,bto_chu.

bto_0,bto_dian,bto_deng,bto_jia};

privado?JTextField?text_ double;//? =?new?JTextField("0 ") ;

private?String?operator?=?" =";?// Operador de la operación actual

private?boolean?firstDigit?=?true;?// ?Mark si el usuario presionó el primer dígito de la expresión completa o el primer dígito después del operador

private?double?resultNum?=?0.0;?//?El resultado intermedio del cálculo

private?boolean?operatingValidFlag?=?true;?// Determinar si la operación es legal

public?setResizable(false);

this.setBackground(Color .orange) ;

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.getContentPane().setLayout(new?BorderLayout());//Establecer diseño

text_double= ¿Nuevo? JTex

tField("0",20);//Establecer el área de texto

text_double.setHorizontalAlignment(JTextField.RIGHT);//establecer que la alineación horizontal no esté alineada a la derecha

esto. getContentPane ().add(text_double,BorderLayout.NORTH);//agregue el área de texto al norte de Contenido

JPanel?panel=new?JPanel(new?GridLayout(5,4));// es Agregar diseño de cuadrícula a la ventana de contenido

this.getContentPane().add(panel);//Agregar un panel al panel

for(int?i=0;i

for(int?i=0;i

panel.add(button[i])

p>

for(int?i=0;i

botón[i].addActionListener(this);//registrarse para el botón

text_double.setEdditable(false);//El cuadro de texto no es editable

text_double.addActionListener(this); //

this.setVisible(true);

}

public?void?actionPerformed(ActionEvent?e)//

{

String?c=?e. ();// Devuelve lo mismo que la cadena de comando asociada con esta operación.

if(c.equals("C")){

handleC();//El usuario presionó la tecla "C"

}

else?if?(c.equals("CE"))//?El usuario presionó la tecla "CE"

{

text_double.setText(" 0" );

}

else?if?("0123456789.".indexOf(c)? >=?0)?//?El usuario presiona la tecla numérica o tecla de punto decimal

{

handleNumber(c); ?//?handlezero(zero);

}?else// El usuario presionó la tecla del operador

{

handleOperator(c);

}

}

privado?void?handleC() //Inicialización Varios valores de la calculadora

{

text_double.setText("0");

firstDigit?=?true;

operador?=?true" =";

}

privado?void?handleNumber(String?button)?{

if( firstDigit)//primer número ingresado

{

text_double.setText(button);

}?(text_double.getText().indexOf("." )) ?

//Si el parámetro de cadena aparece como un subcadena en este objeto, devuelve el primer índice del primer carácter de dicha subcadena si no aparece como una subcadena, devuelve el índice del primer carácter de la primera subcadena; devuelve ?

{

text_double.setText(text_double.getText()?+?" ."))

}?else?if?(!button .equals(". "))//Si el contenido de entrada no es un punto decimal, agregue el número al cuadro de texto del resultado

{

text_double.setText(text_double.getText ()?+?button);

}

// Este definitivamente no es el primer dígito que se ingresará más adelante

firstDigit?=?false;

}

¿privado?void?handleOperator(String?button)?{

if?(operator.equals("/"))?{

/ Operación de división

//Si el valor en el cuadro de texto del resultado actual es igual a 0

if?(getNumberFromText()? ==?0.0){

//La operación no es Legal

operateValidFlag?=?false;

text_double.setText("El divisor no puede ser cero");

}?else?{

resultNum?/=?getNumberFromText();

}

} else?if?=?getNumberFromText();

} else?{

p>

// Operación de raíz cuadrada

if(getNumberFromText()<0){ operanV

alidFlag?=?false;

text_double.setText("El número a elevar al cuadrado no puede ser negativo."). ");}

else

resultNum?=?Math.sqrt(resultNum);

}

else?if?( operator.equals("+/-")){

Operaciones positivas y negativas

resultNum?=?resultNum?*?(-1);

} ?else?if(operador.equals("=")){