· 9 years ago · Oct 08, 2016, 05:18 AM
1import java.awt.Component;
2 import java.awt.EventQueue;
3 import java.awt.Font;
4 import java.awt.event.ActionEvent;
5 import java.awt.event.ActionListener;
6 import java.util.Scanner;
7
8 import javax.swing.DefaultComboBoxModel;
9 import javax.swing.ImageIcon;
10 import javax.swing.JButton;
11 import javax.swing.JComboBox;
12 import javax.swing.JFrame;
13 import javax.swing.JLabel;
14 import javax.swing.JOptionPane;
15 import javax.swing.JTextField;
16
17 import org.apache.commons.lang3.StringUtils;
18 import org.eclipse.wb.swing.FocusTraversalOnArray;
19
20
21 public class RegistroEstudiante {
22 private int matricula = 0; //Sólo 6 dÃgitos
23 private byte edad = 0; //No menor de 0
24 private float altura = 0.0F;
25 private String nombre = null, menu = null, ape_paterno = null, ape_materno = null, genero = null, estadoCivil = null;
26 private int length = 0;
27 private boolean error = false;
28 //FORMS
29 private JFrame frmAgregandoEstudiante;
30 private JTextField txtUsuario;
31 private String correoConcatenado = null;
32
33 ImageIcon iconoEscuela = new ImageIcon(RegistroEstudiante.class.getResource("school.png"));
34 ImageIcon iconoGender = new ImageIcon(RegistroEstudiante.class.getResource("gender.png"));
35 ImageIcon iconoMatricula = new ImageIcon(RegistroEstudiante.class.getResource("password.png"));
36 ImageIcon iconoNombre = new ImageIcon(RegistroEstudiante.class.getResource("idcard.png"));
37 ImageIcon iconoAltura = new ImageIcon(RegistroEstudiante.class.getResource("ruler.png"));
38 ImageIcon iconoEstadoCivil = new ImageIcon(RegistroEstudiante.class.getResource("wedding-rings.png"));
39 ImageIcon iconoError = new ImageIcon(RegistroEstudiante.class.getResource("warning.png"));
40 ImageIcon iconoEdad = new ImageIcon(RegistroEstudiante.class.getResource("age.png"));
41 ImageIcon iconoAdios = new ImageIcon(RegistroEstudiante.class.getResource("wave.png"));
42
43 public class List {
44 public int matricula = 0;
45 public byte edad = 0;
46 public float altura = 0.0F;
47 public String nombre = null, ape_paterno = null, ape_materno = null, genero = null, estadoCivil = null;
48 }
49 public void inicio() {
50 String[] menuPrincipal = {
51 "Ingresar",
52 "Mostrar",
53 "Salir"
54 };
55
56
57 Operaciones operacion = new Operaciones();
58 do {
59 try {
60 setMenu((String) JOptionPane.showInputDialog(null, "¿Qué deseas hacer?", "UNACAR", JOptionPane.QUESTION_MESSAGE, iconoEscuela, menuPrincipal, menuPrincipal[0]));
61 switch (getMenu()) {
62 case "Ingresar":
63 operacion.matricula();
64 //SET NOMBRE
65 operacion.nombre();
66 //SET APELLIDO PATERNO
67 operacion.ape_paterno();
68 //SET APellido MATERNO FTW
69 operacion.ape_materno();
70 // SELECCIONA SEXOOOOOOOOOOOOOOOO
71 operacion.genero();
72 // SET ESTADO CIVIL COMPA
73 operacion.estadoCivil();
74 // SET EDAD
75 operacion.edad();
76 //SET ALTURA
77 operacion.altura();
78 // SET CORREOOOO, SO HARD
79 setCorreoConcatenado(null);
80 inicioCorreos();
81 do {
82 try {
83 Thread.sleep(500);
84 } catch (InterruptedException e) {
85 // DOES NOTHING IN HEEEEEERE
86 }
87 } while (getCorreoConcatenado() == null);
88 break;
89
90 // TERMINA INGRESO DE ESTUDIANTE
91 case "Mostrar":
92 mostrarDatos();
93 break;
94 } // END SWITCH
95 } // END TRY
96 catch (java.lang.NullPointerException e) {
97 switch (JOptionPane.showConfirmDialog(null, "¿Seguro que deseas salir?", "Salir o no salir?.. He ahà la cuestión...", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, iconoAdios)) {
98 case 0:
99 return;
100 case 1:
101 break;
102 }
103 }
104
105 } while (getMenu() != "Salir");
106 }
107 public void mostrarDatos() {
108 ImageIcon iconoDatos = new ImageIcon(RegistroEstudiante.class.getResource("datos.png"));
109 JOptionPane.showMessageDialog(null, "MatrÃcula: " + getMatricula() + "nNombre: " + getNombre() + " " + getApe_paterno() + " " + getApe_materno() + "nGénero: " + getGenero() + "nEstado Civil: " + getEstadoCivil() + "nEdad: " + getEdad() + "nAltura: " + getAltura() + "nCorreo: " + getCorreoConcatenado(), "Información Estudiante " + getNombre(), JOptionPane.INFORMATION_MESSAGE, iconoDatos);
110 }
111 public void inicioCorreos() {
112 EventQueue.invokeLater(new Runnable() {
113 public void run() {
114 try {
115 frmAgregandoEstudiante.setVisible(true);
116 } catch (Exception e) {
117 e.printStackTrace();
118 }
119 }
120 });
121 }
122 /**
123 * Create the application.
124 */
125 public RegistroEstudiante() {
126 initialize();
127 }
128 /**
129 * Initialize the contents of the frame.
130 */
131 private void initialize() {
132 frmAgregandoEstudiante = new JFrame();
133 frmAgregandoEstudiante.setAlwaysOnTop(true);
134 frmAgregandoEstudiante.setResizable(false);
135 frmAgregandoEstudiante.setTitle("Agregando estudiante");
136 frmAgregandoEstudiante.setBounds(100, 100, 272, 164);
137 frmAgregandoEstudiante.setLocationRelativeTo(null);
138 frmAgregandoEstudiante.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
139 frmAgregandoEstudiante.getContentPane().setLayout(null);
140 txtUsuario = new JTextField();
141 txtUsuario.setToolTipText("Introduce la primera parte de tu correo");
142 txtUsuario.setBounds(10, 48, 104, 30);
143 frmAgregandoEstudiante.getContentPane().add(txtUsuario);
144 txtUsuario.setColumns(10);
145 JComboBox comboBox = new JComboBox();
146 comboBox.setModel(new DefaultComboBoxModel(new String[] {
147 "@gmail.com",
148 "@outlook.com",
149 "@unacar.mx",
150 "@live.com",
151 "@yahoo.com",
152 "@hotmail.com"
153 }));
154 comboBox.setBounds(124, 48, 119, 30);
155 frmAgregandoEstudiante.getContentPane().add(comboBox);
156 JButton btnAgregar = new JButton("Agregar");
157 btnAgregar.addActionListener(new ActionListener() {
158 public void actionPerformed(ActionEvent arg0) {
159 String user, mail;
160 user = (String) txtUsuario.getText();
161 mail = (String) comboBox.getSelectedItem();
162 setCorreoConcatenado((String) user.concat(mail));
163 frmAgregandoEstudiante.dispose();
164 txtUsuario.setText(null); //Limpia el correo anterior para que no vuelva a salir
165 }
166 });
167 btnAgregar.setBounds(77, 89, 89, 23);
168 frmAgregandoEstudiante.getContentPane().add(btnAgregar);
169 JLabel lblNewLabel = new JLabel("Agrega el correo del estudiante");
170 lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 14));
171 lblNewLabel.setBounds(10, 11, 207, 27);
172 frmAgregandoEstudiante.getContentPane().add(lblNewLabel);
173 frmAgregandoEstudiante.getContentPane().setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[] {
174 txtUsuario,
175 comboBox,
176 btnAgregar
177 }));
178 }
179 public String getCorreoConcatenado() {
180 return correoConcatenado;
181 }
182 public void setCorreoConcatenado(String correoConcatenado) {
183 this.correoConcatenado = correoConcatenado;
184 }
185 public boolean sonLetras(String name) {
186 return name.matches("[a-zA-Z]+");
187 }
188 public int getMatricula() {
189 return matricula;
190 }
191 public void setMatricula(int matricula) {
192 this.matricula = matricula;
193 }
194 public byte getEdad() {
195 return edad;
196 }
197 public void setEdad(byte edad) {
198 if (edad < 0)
199 JOptionPane.showMessageDialog(null, "No se aceptan valores menores a 0", "Error", JOptionPane.WARNING_MESSAGE, null);
200 this.edad = edad;
201 }
202 public float getAltura() {
203 return altura;
204 }
205 public void setAltura(float altura) {
206 this.altura = altura;
207 }
208 public String getNombre() {
209 return nombre;
210 }
211 public void setNombre(String nombre) {
212 this.nombre = nombre;
213 }
214 public String getApe_paterno() {
215 return ape_paterno;
216 }
217 public void setApe_paterno(String ape_paterno) {
218 this.ape_paterno = ape_paterno;
219 }
220 public String getApe_materno() {
221 return ape_materno;
222 }
223 public void setApe_materno(String ape_materno) {
224 this.ape_materno = ape_materno;
225 }
226 public int getLength() {
227 return length;
228 }
229 public void setLength(int length) {
230 this.length = length;
231 }
232 public boolean isError() {
233 return error;
234 }
235 public void setError(boolean error) {
236 this.error = error;
237 }
238 public String getGenero() {
239 return genero;
240 }
241 public void setGenero(String genero) {
242 this.genero = genero;
243 }
244 public String getEstadoCivil() {
245 return estadoCivil;
246 }
247 public void setEstadoCivil(String estadoCivil) {
248 this.estadoCivil = estadoCivil;
249 }
250 public String getMenu() {
251 return menu;
252 }
253 public void setMenu(String menu) {
254 this.menu = menu;
255 }
256 }
257
258import javax.swing.ImageIcon;
259import javax.swing.JOptionPane;
260
261import org.apache.commons.lang3.StringUtils;
262
263
264
265public class Operaciones {
266RegistroEstudiante re = new RegistroEstudiante();
267 String[] genero = {
268 "Masculino",
269 "Femenino"
270 };
271 String[] estadoCivilMenu = {
272 "Soltero/a",
273 "Comprometido/a",
274 "Casado/a",
275 "Divorciado/a",
276 "Viudo/a"
277 };
278
279public void matricula(){
280 do {
281 re.setError(false);
282 try {
283 re.setMatricula((Integer.parseInt((String) JOptionPane.showInputDialog(null, "Introduce MatrÃcula [6]", "Agregando estudiante", JOptionPane.QUESTION_MESSAGE, re.iconoMatricula, null, null))));
284 } catch (java.lang.NumberFormatException e) {
285 JOptionPane.showMessageDialog(null, "Introdujiste un caractér inválido", "Error", JOptionPane.ERROR_MESSAGE, re.iconoError);
286 re.setError(true);
287 }
288 re.setLength((int)(Math.log10(re.getMatricula() + 1)));
289 System.out.println(re.getMatricula());
290 System.out.println(re.getLength());// Saca cantidad de caracteres
291 if ((re.getLength() != 5) && (re.isError() == false)) {
292 JOptionPane.showMessageDialog(null, "La MatrÃcula DEBE ser de 6 dÃgitos", "Error", JOptionPane.ERROR_MESSAGE, re.iconoError);
293 re.setMatricula(0);
294 }
295 } while (re.getLength() != 5);
296}
297
298public void nombre(){
299 do {
300
301 re.setError(false);
302 re.setNombre((String) JOptionPane.showInputDialog(null, "Introduce nombre del alumno", "Agregando estudiante", JOptionPane.QUESTION_MESSAGE, re.iconoNombre, null, null));
303 if (StringUtils.isAlpha(re.getNombre()) == false) {
304 JOptionPane.showMessageDialog(null, "El nombre debe contener únicamente letras [A-Za-z]", "Error", JOptionPane.ERROR_MESSAGE, re.iconoError);
305 re.setNombre(null);
306 re.setError(true);
307 }
308 } while (re.isError() == true);
309}
310
311public void ape_paterno(){
312 do {
313 re.setError(false);
314 re.setApe_paterno((String) JOptionPane.showInputDialog(null, "Introduce apellido paterno de " + re.getNombre(), "Agregando estudiante", JOptionPane.QUESTION_MESSAGE, re.iconoNombre, null, null));
315 if (StringUtils.isAlpha(re.getApe_paterno()) == false) {
316 JOptionPane.showMessageDialog(null, "El apellido debe contener únicamente letras [A-Za-z]", "Error", JOptionPane.ERROR_MESSAGE, re.iconoError);
317 re.setApe_paterno(null);
318 re.setError(true);
319 }
320 } while (re.isError() == true);
321}
322
323public void ape_materno(){
324 do {
325 re.setError(false);
326 re.setApe_materno((String) JOptionPane.showInputDialog(null, "Introduce apellido materno de " + re.getNombre(), "Agregando estudiante", JOptionPane.QUESTION_MESSAGE, re.iconoNombre, null, null));
327 if (StringUtils.isAlpha(re.getApe_materno()) == false) {
328 JOptionPane.showMessageDialog(null, "El nombre debe contener únicamente letras [A-Za-z]", "Error", JOptionPane.ERROR_MESSAGE, re.iconoError);
329 re.setApe_materno(null);
330 re.setError(true);
331 }
332 } while (re.isError() == true);
333}
334
335
336public void genero(){
337 if (JOptionPane.showOptionDialog(null, "Selecciona género de " + re.getNombre(), "Agregando estudiante", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, re.iconoGender, genero, genero[0]) == 0) {
338 re.setGenero("Masculino");
339 } else {
340 re.setGenero("Femenino");
341 }
342}
343
344public void estadoCivil(){
345 re.setEstadoCivil((String) JOptionPane.showInputDialog(null, "Estado Civil de " + re.getNombre(), "UNACAR", JOptionPane.QUESTION_MESSAGE, re.iconoEstadoCivil, estadoCivilMenu, estadoCivilMenu[0]));
346}
347
348public void edad(){
349 do {
350 re.setError(false);
351 try {
352 re.setEdad(Byte.parseByte((String) JOptionPane.showInputDialog(null, "Introduce la edad del alumno", "Agregando estudiante", JOptionPane.QUESTION_MESSAGE, re.iconoEdad, null, null)));
353 } catch (java.lang.NumberFormatException e) {
354 JOptionPane.showMessageDialog(null, "Aquà sólo se aceptan números...", "Error", JOptionPane.ERROR_MESSAGE, re.iconoError);
355 re.setError(true);
356 }
357 if (((re.getEdad() <= 0) || (re.getEdad() >= 60)) && (re.isError() == false)) {
358 JOptionPane.showMessageDialog(null, re.getNombre() + " no puede tener 0 años o menos, ni ser mayor de 60, corrige... ", "Error", JOptionPane.ERROR_MESSAGE, re.iconoError);
359 re.setEdad((byte) 0);
360 re.setError(true);
361 }
362 } while (re.isError() == true);
363}
364
365public void altura(){
366 do {
367 re.setError(false);
368 try {
369 re.setAltura(Float.parseFloat((String) JOptionPane.showInputDialog(null, "Introduce la altura del alumno", "Agregando estudiante", JOptionPane.QUESTION_MESSAGE, re.iconoAltura, null, null)));
370 } catch (java.lang.NumberFormatException e) {
371 JOptionPane.showMessageDialog(null, "Aquà no se aceptan letras...", "Error", JOptionPane.ERROR_MESSAGE, re.iconoError);
372 re.setError(true);
373 }
374 if (re.getAltura() <= 0 && re.isError() == false) {
375 JOptionPane.showMessageDialog(null, re.getNombre() + " no puede medir 0 centimetros o menos, corrige...", "Error", JOptionPane.ERROR_MESSAGE, re.iconoError);
376 re.setAltura(0.0F);
377 re.setError(true);
378 }
379 } while (re.isError() == true);
380}
381
382
383}