Java AWT Age Calculator: Build a Birthdate Age App
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
MousePressedfue corregido amousePressedpara sobrescribir correctamente el evento. - La variable
double anioduplicaba el nombre deint anio, por lo que se debe revisar la declaración. - El cálculo de la edad no es exacto; se recomienda usar
java.time.Periodpara obtener resultados precisos.