Java - Calcular Edad

   
Vista:

Calcular Edad

Publicado por Yeison yeisonarango03@gmail.com (2 intervenciones) el 11/09/2017 21:21:39
Captura

Hola muchachos estoy empezando con la programacion en java y haciendo un pequeño programa con JFrame
Muestra la ventana pero no muestra los elementos del panel

Les dejo el codigo por si me puden ayudar saludos:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package secuenciales.calcularFecha;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import javax.swing.*;
 
// importo las librerias completas de la clase Swing, para no tener que importar una a una.
public class Calcular extends JFrame {
 
	// int edad=0;
 
	JLabel labelNombre = new JLabel();
	JTextField entradaNombre = new JTextField(20);
	JLabel labelFecha = new JLabel();
	JLabel labelDia = new JLabel();
	JComboBox comboDia = new JComboBox();
	JLabel labelMes = new JLabel();
	JComboBox comboMes = new JComboBox();
	JLabel labelAno = new JLabel();
	JComboBox comboAno = new JComboBox();
	JButton btnCalcular = new JButton();
	JPanel panel = new JPanel();
 
 
    public Calcular() {
 
    	// añadimos un titulo y adicionamos los label al panel
    	setTitle("Calcular Edad");
    	setSize(300,300);
    	panel.setLayout(null);
    	panel.add(labelNombre);
    	labelNombre.setBounds(20,10,100,30);
    	panel.add(entradaNombre);
    	entradaNombre.setBounds(80,15,100,20);
    	panel.add(labelFecha);
    	labelFecha.setBounds(50,50,150,30);
    	panel.add(labelDia);
    	labelDia.setBounds(20,70,100,30);
    	panel.add(labelMes);
    	labelMes.setBounds(70,70,100,30);
    	panel.add(labelAno);
    	labelAno.setBounds(120,70,100,30);
 
    	panel.add(comboDia);
    	comboDia.setBounds(20,100,40,25);
 
 
    	for(int dia=1; dia<=31;dia++){
    		comboDia.addItem(String.valueOf(dia));
    	}
 
    	panel.add(comboMes);
    	comboMes.setBounds(70,100,40,25);
 
    	for(int mes=1; mes<=12;mes++){
    		comboMes.addItem(String.valueOf(mes));
    	}
 
    	panel.add(comboAno);
    	comboAno.setBounds(120,100,60,25);
 
    	for(int ano=1970; ano<=2012;ano++){
    		comboAno.addItem(String.valueOf(ano));
 
 
    	}
 
    	panel.add(btnCalcular);
    	btnCalcular.setBounds(50,150,120,30);
 
    	Container c = new Container();
    	c.add(panel);
 
 
    	btnCalcular.addActionListener(new ActionListener() {
 
			@Override
			public void actionPerformed(ActionEvent e) {
				// Controlamos las acciones del boton
 
				Calendar fechaActual = new GregorianCalendar();
 
				int diaActual = fechaActual.get(Calendar.DAY_OF_MONTH);
				int mesActual = fechaActual.get(Calendar.MONTH)+1;
				int anoActual = fechaActual.get(Calendar.YEAR);
 
				int diaNuevo = Integer.parseInt((String)comboDia.getSelectedItem());
				int mesNuevo = Integer.parseInt((String)comboMes.getSelectedItem());
				int anoNuevo = Integer.parseInt((String)comboAno.getSelectedItem());
 
				String hora=fechaActual.get(Calendar.HOUR)+":"+fechaActual.get(Calendar.MINUTE);
 
				int Edad=anoActual-anoNuevo;
 
				if(mesNuevo<mesActual) {
					Edad=Edad;
				}
				else {
					if(mesNuevo>mesActual) {
						Edad=Edad-1;
					}else {
						if(diaActual>diaNuevo){
							Edad=Edad;
						}else {
							if(diaActual<diaNuevo){
								Edad=Edad-1;
							}
						}
					}
				}
 
				JOptionPane.showMessageDialog(null,"Calculando Edad\n" + entradaNombre.getText()+
					"Tiene "+ "Edad "+ "Años");
			}
		});
    }
}





1
2
3
4
5
6
7
8
9
10
11
package secuenciales.calcularFecha;
 
public class TestEdad  {
 
	public static void main(String[] args) {
 
		Calcular nuevo = new Calcular();
		nuevo.setVisible(true);
	}
 
}

Espero me puedan ayudar saludos,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Calcular Edad

Publicado por Jordi (127 intervenciones) el 12/09/2017 02:07:00
No me he leido todo el código, pero a primera vista me he dado cuenta de que no agregas el panel a la ventana. En vez de hacer
1
2
Container c = new Container();
c.add(panel);
trata con
1
this.add(panel);

Por otro lado te aviso de que hay una herramienta (la novena) encima del text area donde se escribe el post que permite ver el codigo de forma más ordenada.
Si no entiendes el porque avisa y te explico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Calcular Edad

Publicado por Yeison (2 intervenciones) el 12/09/2017 05:44:02
Muchas gracias me sirvio tu observacion para poder hacer funcionar el codigo
Por otro lado cual es la herramienta la del icono de las etiquetas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Calcular Edad

Publicado por Jordi jordidalmaucolell2@hotmail.com (127 intervenciones) el 12/09/2017 12:39:03
A que etiquetas te refieres?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar