Implementación de JRadioButton y JFrame en Java para el Cálculo de Sueldo Líquido

Informática4,89 KB

Código de Ejemplo: Interfaz Gráfica con JRadioButton en Java Swing

El siguiente programa implementa una interfaz gráfica utilizando la biblioteca javax.swing y java.awt para capturar datos de un empleado, seleccionar opciones previsionales y de salud mediante JRadioButton agrupados en ButtonGroup, y gestionar acciones básicas con botones de control.

Estructura del Código Fuente

package ejemploradiobutton;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class radio extends JFrame {
    // Declaración de componentes de la interfaz
    private JLabel lbl1, lbl2;
    private JTextField txtNombre;
    private JTextField txtSueldo;
    private JRadioButton rbtAfp1, rbtAfp2, rbtAfp3, rbtIsapre1, rbtIsapre2, rbtFonasa;
    private ButtonGroup grp1, grp2;
    private JButton btnCalcular, btnCancelar, btnSalir;
    private JPanel pnl1, pnl2, pnl3;

    public radio() {
        super("Calcular Sueldo Liquido");

        // Inicialización de etiquetas y campos de texto
        lbl1 = new JLabel("Ingrese Nombre");
        lbl2 = new JLabel("Ingrese Sueldo Bruto");
        txtNombre = new JTextField(20);
        txtSueldo = new JTextField(10);

        // Inicialización de botones de opción (JRadioButton)
        rbtAfp1 = new JRadioButton("Afp1", false);
        rbtAfp2 = new JRadioButton("Afp2", false);
        rbtAfp3 = new JRadioButton("Afp3", false);
        rbtIsapre1 = new JRadioButton("Isapre1", false);
        rbtIsapre2 = new JRadioButton("Isapre2", false);
        rbtFonasa = new JRadioButton("Fonasa", false);

        // Creación de grupos para selección mutuamente excluyente
        grp1 = new ButtonGroup();
        grp2 = new ButtonGroup();

        // Botones de acción
        btnCalcular = new JButton("Calcular Sueldo Liquido");
        btnCancelar = new JButton("Cancelar");
        btnSalir = new JButton("Salir");

        // Paneles contenedores
        pnl1 = new JPanel();
        pnl2 = new JPanel();
        pnl3 = new JPanel();

        // Agrupar los JRadioButton en sus respectivos ButtonGroup
        grp1.add(rbtAfp1);
        grp1.add(rbtAfp2);
        grp1.add(rbtAfp3);

        grp2.add(rbtIsapre1);
        grp2.add(rbtIsapre2);
        grp2.add(rbtFonasa);

        // Configuración del panel 1 (Datos del trabajador)
        pnl1.setLayout(new GridLayout(2, 2));
        pnl1.add(lbl1);
        pnl1.add(txtNombre);
        pnl1.add(lbl2);
        pnl1.add(txtSueldo);

        // Configuración del panel 2 (Opciones de previsión y salud)
        pnl2.setLayout(new GridLayout(3, 2));
        pnl2.add(rbtAfp1);
        pnl2.add(rbtIsapre1);
        pnl2.add(rbtAfp2);
        pnl2.add(rbtIsapre2);
        pnl2.add(rbtAfp3);
        pnl2.add(rbtFonasa);

        // Configuración del panel 3 (Botones de interacción)
        pnl3.setLayout(new FlowLayout());
        pnl3.add(btnCalcular);
        pnl3.add(btnCancelar);
        pnl3.add(btnSalir);

        // Diseño principal de la ventana (GridLayout de 3 filas, 1 columna)
        setLayout(new GridLayout(3, 1));
        add(pnl1);
        add(pnl2);
        add(pnl3);

        // Asignación de manejadores de eventos
        btnCalcular.addActionListener(new ejemradio());
        btnSalir.addActionListener(new ejemradio());
        btnCancelar.addActionListener(new ejemradio());

        // Ajustes finales del marco (JFrame)
        setSize(500, 450);
        setVisible(true);
    }

    public static void main(String[] args) {
        radio x = new radio();
        x.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    // Clase interna para el control de eventos
    private class ejemradio implements ActionListener {
        public void actionPerformed(ActionEvent n) {
            // Salir de la aplicación
            if (btnSalir == n.getSource()) {
                System.exit(0);
            }
            // Cancelar y limpiar formulario
            if (btnCancelar == n.getSource()) {
                txtNombre.setText("");
                txtNombre.requestFocus();
                txtSueldo.setText("");
                grp1.clearSelection();
                grp2.clearSelection();
            }
        }
    }
}

Elementos Principales del Documento

  • JFrame: Actúa como el contenedor principal de la interfaz de usuario.
  • JRadioButton y ButtonGroup: Permiten la selección exclusiva dentro de cada grupo (uno para el fondo previsional AFP y otro para el sistema de salud Isapre / Fonasa).
  • GridLayout y FlowLayout: Administradores de esquema usados para distribuir los campos, etiquetas y botones de manera ordenada en distintos JPanel.
  • ActionListener: Interfaz encargada de capturar los eventos generados al presionar los botones Cancelar y Salir.

Descargar

PDF Word HTML