Breaking

Post Top Ad

Your Ad Spot

jueves, 22 de agosto de 2019

Calculadora con Java Swing y AWT con código fuente

Este artículo trata sobre proporcionar un diseño o estructura básica de una calculadora que funcione utilizando Java para comprender el funcionamiento de la GUI de Java.Calculadora usando Java
import  javax.swing. * ; 
import  javax.swing.border. * ; 
import  java.awt. * ; 
import  java.awt.event. * ; 
import  javax.script.ScriptEngineManager ; 
import  javax.script.ScriptEngine ; 
import  javax.script.ScriptException ;

class  Calculator  extiende  JFrame  implementa  ActionListener 
{ 
    private  static  final  int  FRAME_WIDTH  =  300 ; 
    privado  estático  final  int  FRAME_HEIGHT  =  220 ; 
    privado  estático  final  int  FRAME_X  =  150 ; 
    privado  estático  final  int  FRAME_Y  =  100 ;

     JPanel  privado buttonPanel ; 
    JPanel privado  inputOutputPanel ; 

    privada  JTextField  información ;

    privado  booleano  editable  =  verdadero ;

    pública  Calculadora () 
    { 
        Container  contentPane  =  getContentPane (); 
        contentPane . setLayout ( nuevo  FlowLayout ());

        buttonPanel  =  nuevo  JPanel (); 
        buttonPanel . setLayout ( nuevo  GridLayout ( 4 , 4 , 5 , 5 )); 
        // para padding 
        buttonPanel . setBorder ( nuevo  EmptyBorder ( 10 , 10 , 10 , 10 ));

        inputOutputPanel  =  new  JPanel (); 
        inputOutputPanel . setLayout ( nuevo  FlowLayout ()); 
        // para el relleno 
        inputOutputPanel . setBorder ( nuevo  EmptyBorder ( 10 , 10 , 10 , 10 ));

        setTitle ( "Calculadora usando Java" ); 
        setSize ( FRAME_WIDTH , FRAME_HEIGHT ); 
        setResizable ( falso ); 
        setLocation ( FRAME_X , FRAME_Y );

        info  =  nuevo  JTextField (); 
        info . setFont ( nueva  fuente ( "SansSerif" ,  Font . PLAIN ,  16 )); 
        info . setBackground ( Color . blanco ); 
        info . setBorder ( BorderFactory . createLineBorder ( Color . negro )); 
        info . setPreferredSize ( nueva  dimensión ( 270 ,  35)); 
        info . addActionListener ( esto ); 
        inputOutputPanel . agregar ( información ); 
        contentPane . add ( inputOutputPanel );

        // botones en la calculadora 
        Cadena  botones []  =  { "7" ,  "8" ,  "9" ,  "/" ,  "4" ,  "5" ,  "6" ,  "*" ,  "1" ,  "2" , "3" , "-" , "0" , "." , "=" ,  "+" ,};

        // agregar botones para la matriz de botones 
        para  ( Cadena  i  :  botones ) 
        { 
            JButton  button  =  new  JButton ( i ); 
            botón . addActionListener ( esto ); 
            buttonPanel . agregar ( botón ); 
        }

        contentPane . agregar ( buttonPanel );

        setDefaultCloseOperation ( EXIT_ON_CLOSE ); 
    }

    public  void  actionPerformed ( evento ActionEvent  ) { // la fuente es del botón if ( evento . getSource () instanceof JButton ) { JButton clickedButton = ( JButton ) event . getSource (); // si se hace clic en =, el resultado se mostrará if ( clickedButton . getText (). equals ( "=" )) { addOutput (); }
    
        
           
        
                
            
            
            
                
            
            // más tomaremos input 
            else 
            { 
                addInput ( clickedButton . getText ()); 
            } 
        } 
        // la fuente es de JTextField 
        else 
        { 
            addOutput (); 
        } 
    }

    public  void  addInput ( String  line ) 
    { 
        // agregar teclas presionadas a TextField 
        // editable será falso si el resultado se muestra 
        si ( editable ) 
        { 
            info . setText ( info . getText () + línea ); 
        } 
        // el resultado está en la pantalla 
        // editable es falso 
        // no 
        se agrega // agregaremos el texto 
        más 
        { 
            info . setText ( línea ); 
            editable  =  verdadero ; 
        } 
    }
    public  void  addOutput () 
    { 
        doble  salida  =  0 ;

        // convertir cadena en expresión 
        try 
        { 
            ScriptEngineManager  mgr  =  new  ScriptEngineManager (); 
            Motor ScriptEngine  = mgr . getEngineByName ( "JavaScript" ); info . setText ( motor . eval ( info . getText ()). toString ()); } catch ( ScriptException e ) { info . setText ( "Error de sintaxis" ); }  
            
        
         
        
            
        
        editable  =  falso ; 
    }

    // método principal 
    public  static  void  main  ( String  []  args ) 
    { 
        Calculadora  calculadora  =  nueva  Calculadora (); 
        calculadora . setVisible ( verdadero ); 
    } 
}

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas