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);
}
}