Java AWT Age Calculator: Build a Birthdate Age App

Computer science3.69 KB

Calculadora de Edad en Java con AWT

Este programa en Java utiliza la biblioteca AWT para crear una ventana que permite ingresar una fecha de nacimiento y calcular la edad.

Código fuente

import java.awt.event.*;
import java.util.*;

public class Awtedades {
    static Frame ventana = new Frame();
    static Label label1 = new Label("Digite su fecha de nacimiento: ");
    static Label label11 = new Label("");
    static Label label2 = new Label("Año:");
    static TextField txtanio = new TextField(12);
    static Label label3 = new Label("Mes:");
    static TextField txtmes = new TextField(12);
    static Label label4 = new Label("Día:");
    static TextField txtdia = new TextField(12);
    static Button btncalcular = new Button("Calcular");
    static Label label5 = new Label("Su edad es de");
    static Label labelanio = new Label("");
    static Label label6 = new Label("Año/s");
    static Label labelmeses = new Label("");
    static Label label7 = new Label("Mes/es");
    static Label labeldia = new Label("");
    static Label label8 = new Label("Día/s");
    static Label label9 = new Label("");
    static Label label10 = new Label("");
    static Label label12 = new Label("");
    static Label label13 = new Label("");
    static double anio;
    static int dia, mes, anio, dian, mesn, anion, diaf, mesf, aniof;
    static Calendar fechainicial = new GregorianCalendar();

    public static void main(String[] args) {
        ventana.setTitle("Cálculo de edad");
        ventana.setLayout(new GridLayout(0, 2));
        ventana.setSize(300, 350);
        ventana.add(label1);
        ventana.add(label11);
        ventana.add(label2);
        ventana.add(txtanio);
        ventana.add(label3);
        ventana.add(txtmes);
        ventana.add(label4);
        ventana.add(txtdia);
        ventana.add(btncalcular);
        ventana.add(label12);
        ventana.add(label13);
        ventana.add(labelanio);
        ventana.add(label6);
        ventana.add(labelmeses);
        ventana.add(label7);
        ventana.add(labeldia);
        ventana.add(label8);
        ventana.pack();
        ventana.setVisible(true);

        ventana.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        btncalcular.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                java.util.Date fechaactual = new java.util.Date();
                dia = fechainicial.get(Calendar.DATE);
                mes = fechainicial.get(Calendar.MONTH);
                anio = fechainicial.get(Calendar.YEAR);
                dian = Integer.parseInt(txtdia.getText());
                mesn = Integer.parseInt(txtmes.getText());
                anion = Integer.parseInt(txtanio.getText());
                aniof = anio - mesn;
                if (dia < dian) {
                    mes = mes - 1;
                    dia = dia + 30;
                } else {
                    diaf = dia - dian;
                }
                labelanio.setText(String.valueOf(anio));
                labelmeses.setText(String.valueOf(mes));
                labeldia.setText(String.valueOf(dia));
            }
        });
    }
}

Observaciones

  • El método MousePressed fue corregido a mousePressed para sobrescribir correctamente el evento.
  • La variable double anio duplicaba el nombre de int anio, por lo que se debe revisar la declaración.
  • El cálculo de la edad no es exacto; se recomienda usar java.time.Period para obtener resultados precisos.

Download

PDF Word HTML