Caja registradora

Caja registradora

Este programa crea una interfaz gráfica de usuario (GUI) para una caja registradora que permite a los usuarios introducir los precios de tres productos, luego calcula y finalmente muestra la suma de estos precios cuando se presiona el botón “Resultado”.

 


    
        
// Importa las clases para la creación de la interfaz gráfica
import java.awt.*;
// Importa las clases para manejar eventos
import java.awt.event.*;
// Importa las clases para la creación de la interfaz gráfica
import javax.swing.*;

@SuppressWarnings("serial")
// La clase extiende JFrame e implementa ActionListener
public class CajaRegistradora extends JFrame implements ActionListener{

       // Botón para calcular el total
       private JButton boton;
       // Etiqueta para instrucciones
       private JLabel etiquetaInstruccion;
       // Campos de texto para los precios de los productos y el resultado
       private JTextField primerNum,segundoNum,tercerNum,campoResultado;

       // Método principal
       public static void main(String[] args) {
             // Crea una instancia de la clase
             CajaRegistradora marco = new CajaRegistradora();
             // Establece el tamaño de la ventana
             marco.setSize(225,240);
             // Llama al método para crear la interfaz gráfica
             marco.crearGUI();
             // Hace visible la ventana
             marco.setVisible(true);
       }

       // Método para crear la interfaz gráfica
       private void crearGUI(){
             // Establece la operación de cierre por defecto
             setDefaultCloseOperation(EXIT_ON_CLOSE);
             // Obtiene el contenedor principal
             Container ventana = getContentPane();
             // Establece el gestor de diseño
             ventana.setLayout(new FlowLayout());

             // Crea la etiqueta de instrucción para el usuario
             etiquetaInstruccion = new JLabel("Introduzca el monto de cada producto\n");
             // Establece el color de la etiqueta
             etiquetaInstruccion.setForeground(Color.blue);
             // Establece la fuente de la etiqueta
             etiquetaInstruccion.setFont(new Font(null,Font.PLAIN,11));
             // Añade la etiqueta al contenedor
             ventana.add(etiquetaInstruccion); 

             // Crea el primer campo de texto
             primerNum = new JTextField(5);
             // Establece la fuente del campo de texto
             primerNum.setFont(new Font(null,Font.ITALIC,12));
             // Añade el campo de texto al contenedor
             ventana.add(primerNum);

             // Crea el segundo campo de texto
             segundoNum = new JTextField(5);
             segundoNum.setFont(new Font(null,Font.ITALIC,12));
             ventana.add(segundoNum);

             // Crea el tercer campo de texto
             tercerNum = new JTextField(5);
             tercerNum.setFont(new Font(null,Font.ITALIC,12));
             ventana.add(tercerNum);

             // Crea el botón
             boton = new JButton("Resultado");
             // Establece el color de fondo del botón
             boton.setBackground(Color.green);
             // Establece el color de la letra del botón
             boton.setForeground(Color.red);
             // Establece la fuente del botón
             boton.setFont(new Font(null,Font.BOLD,15));
             // Añade el botón al contenedor
             ventana.add(boton);
             // Añade un oyente de acción al botón, lo que significa que
             // puede responder a los eventos de acción (ActionEvent). 
             boton.addActionListener(this);

             // Crea el campo de texto para el resultado
             campoResultado = new JTextField(19);
             // Establece la fuente del campo de texto
             campoResultado.setFont(new Font(null,Font.ITALIC,11));
             // Añade el campo de texto al contenedor
             ventana.add(campoResultado);
       }

       @Override
       // Método que se ejecuta cuando se presiona el botón
       public void actionPerformed(ActionEvent event){
             // Variables para almacenar los precios y la suma
             double suma,a,b,c;
             // Variables para almacenar los precios como cadenas de texto
             String aString,bString,cString;

             // Obtiene el texto del primer campo
             aString = primerNum.getText();
             // Convierte el texto a double
             a = Double.parseDouble(aString);

             // Obtiene el texto del segundo campo
             bString = segundoNum.getText();
             // Convierte el texto a double
             b = Double.parseDouble(bString);

             // Obtiene el texto del tercer campo
             cString = tercerNum.getText();
             // Convierte el texto a double
             c = Double.parseDouble(cString);

             // Calcula la suma
             suma = a+b+c;

             // Comprueba si la suma es un número
             if(suma == suma)
                    // Muestra el resultado
                    campoResultado.setText("El total es: $" + suma);
       }

}