1 00:00:00,750 --> 00:00:08,949 Bueno, pues aquí, aunque ha sido poco, aunque ha sido poquito, algo hemos ensuciado el controlador, ¿verdad? 2 00:00:09,949 --> 00:00:15,349 Imaginaos que es una aplicación más grande que trabaja con colecciones de datos, de nombres, de cosas. 3 00:00:16,170 --> 00:00:17,969 Pues no podemos meterlo todo aquí. 4 00:00:18,710 --> 00:00:24,250 Empezaría a ser un controlador con una lista de propiedades que no le pegan nada y es inmanejable. 5 00:00:24,670 --> 00:00:29,329 Entonces, aquí lo natural, aunque en este caso la implicación ha sido pequeña, lo natural es, 6 00:00:29,329 --> 00:00:32,270 mi aplicación que va a ser una calculadora 7 00:00:32,270 --> 00:00:35,049 una calculadora es un objeto que hace cosas 8 00:00:35,049 --> 00:00:38,130 pues por qué no me declaro yo una clase calculadora 9 00:00:38,130 --> 00:00:40,649 con los datos que la caracterizan 10 00:00:40,649 --> 00:00:42,189 que serán los operandos 11 00:00:42,189 --> 00:00:44,909 con las operaciones que hace, sumar, restar 12 00:00:44,909 --> 00:00:46,490 tengo ahí mi objeto calculadora 13 00:00:46,490 --> 00:00:49,710 con sus características, con sus operaciones 14 00:00:49,710 --> 00:00:53,210 y el controlador usa ese objeto, punto pelota 15 00:00:53,210 --> 00:00:55,850 habría sido lo natural, ¿verdad? 16 00:00:55,850 --> 00:00:58,469 entonces, pues por ejemplo 17 00:00:58,469 --> 00:01:00,270 si rápidamente nos hacemos 18 00:01:00,270 --> 00:01:02,689 un paquete, pues modelo por aquí 19 00:01:02,689 --> 00:01:10,450 otro paquete más para las clases de modelo 20 00:01:10,450 --> 00:01:12,430 pues esdam1.model 21 00:01:13,430 --> 00:01:14,569 me hago yo 22 00:01:14,569 --> 00:01:16,250 mi paquete y aquí me meto 23 00:01:16,250 --> 00:01:17,969 calculadora 24 00:01:17,969 --> 00:01:28,549 vale 25 00:01:28,549 --> 00:01:30,510 y aquí ya pues el diseño que yo quiera 26 00:01:30,510 --> 00:01:31,489 pues 27 00:01:31,489 --> 00:01:33,989 En calculadora, pues por ejemplo 28 00:01:33,989 --> 00:01:35,409 Se puede caracterizar 29 00:01:35,409 --> 00:01:37,609 Por sus dos operandos 30 00:01:37,609 --> 00:01:44,379 Pero esto ya, bueno 31 00:01:44,379 --> 00:01:47,299 Esto ya implicaría en función del tipo de calculadora 32 00:01:47,299 --> 00:01:49,099 Que vaya a hacer, de todo eso ya hacer 33 00:01:49,099 --> 00:01:51,099 Un buen diseño de la calculadora, claro 34 00:01:51,099 --> 00:01:53,140 Pero bueno, vamos a dejarlo así 35 00:01:53,140 --> 00:01:54,219 Para no complicarnos 36 00:01:54,219 --> 00:01:57,200 Y ahora, lógicamente la calculadora 37 00:01:57,200 --> 00:01:59,420 Tendría un método suma 38 00:01:59,420 --> 00:02:02,219 Un método sumar 39 00:02:02,219 --> 00:02:05,120 Que es lo que haría 40 00:02:05,120 --> 00:02:06,560 Pues devolvería 41 00:02:06,560 --> 00:02:11,360 op1 más op2 42 00:02:11,360 --> 00:02:12,879 por ejemplo 43 00:02:12,879 --> 00:02:15,300 y así las operaciones que yo quisiera 44 00:02:15,300 --> 00:02:16,240 con la calculadora 45 00:02:16,240 --> 00:02:32,020 bueno, lo que fuera 46 00:02:32,020 --> 00:02:34,520 esto ya sería una cuestión de que yo ya me sentara 47 00:02:34,520 --> 00:02:35,780 a diseñar exactamente 48 00:02:35,780 --> 00:02:37,520 cómo va a funcionar mi calculadora 49 00:02:37,520 --> 00:02:40,460 y por qué se tiene que caracterizar 50 00:02:40,460 --> 00:02:41,800 a lo mejor 51 00:02:41,800 --> 00:02:44,000 tendría sentido que 52 00:02:44,000 --> 00:02:45,439 se caracterizara por una variable 53 00:02:45,439 --> 00:02:48,099 operación que formara parte de un enumerado 54 00:02:48,099 --> 00:02:49,879 y un único método calcular 55 00:02:49,879 --> 00:02:51,860 con un switch case en función del enum 56 00:02:51,860 --> 00:02:53,740 que hiciera el cálculo que fuera, eso ya es un tema 57 00:02:53,740 --> 00:02:55,020 de diseñar bien este objeto 58 00:02:55,020 --> 00:02:57,300 entonces ahora 59 00:02:57,300 --> 00:02:59,159 ¿qué ocurriría en nuestro controlador? 60 00:02:59,879 --> 00:03:01,099 pues nuestro controlador 61 00:03:01,099 --> 00:03:03,740 en lugar de meter basura aquí 62 00:03:03,740 --> 00:03:05,800 de cosas que no le caracterizan 63 00:03:05,800 --> 00:03:07,719 operandos, que son eso de operandos 64 00:03:07,719 --> 00:03:09,500 mi controlador 65 00:03:09,500 --> 00:03:12,159 usaría un objeto 66 00:03:12,159 --> 00:03:13,060 calculadora 67 00:03:13,060 --> 00:03:15,939 eso ya sí, los objetos 68 00:03:15,939 --> 00:03:17,400 del modelo los tiene que usar, claro 69 00:03:17,400 --> 00:03:28,370 mi controlador tendría la calculadora 70 00:03:28,370 --> 00:03:30,150 porque tiene que tener acceso a la calculadora 71 00:03:30,150 --> 00:03:31,490 lógicamente, pero ya está 72 00:03:31,490 --> 00:03:36,129 y ahora, ¿qué haría? pues botón suma 73 00:03:36,129 --> 00:03:37,750 pues fijaría 74 00:03:37,750 --> 00:03:39,250 el operando 1 de calculadora 75 00:03:39,250 --> 00:03:41,610 vamos a ponerle un set, que no le hemos puesto set ni nada 76 00:03:41,610 --> 00:03:54,729 pues ¿qué podría hacer entonces 77 00:03:54,729 --> 00:03:56,310 mi botón suma? 78 00:03:57,189 --> 00:03:58,550 pues mi botón suma 79 00:03:58,550 --> 00:04:00,150 pues haría, oye tú 80 00:04:00,150 --> 00:04:02,370 lo único que hace mi botón suma es 81 00:04:02,370 --> 00:04:04,129 a mi calculadora 82 00:04:04,129 --> 00:04:06,030 fíjale el operando 1 83 00:04:06,030 --> 00:04:15,680 ya está, eso es lo que es el botón suma 84 00:04:15,680 --> 00:04:18,079 fijarle el operando 1 a la calculadora, nada más 85 00:04:18,079 --> 00:04:20,019 ¿qué haría 86 00:04:20,019 --> 00:04:21,759 el botón igual? 87 00:04:22,759 --> 00:04:24,279 fijarle el operando 2 88 00:04:24,279 --> 00:04:26,300 y luego llamar 89 00:04:26,300 --> 00:04:27,420 a la operación suma 90 00:04:27,420 --> 00:04:29,060 por ejemplo 91 00:04:29,060 --> 00:04:30,959 pues entonces 92 00:04:30,959 --> 00:04:33,540 ¿qué es lo que haría el operando 2? 93 00:04:33,540 --> 00:04:35,379 pues ya fijarle 94 00:04:35,379 --> 00:04:37,379 perdón, el botón igual 95 00:04:37,379 --> 00:04:42,860 fijarle el operando 2 96 00:04:42,860 --> 00:04:44,620 con lo que haya en el área de texto 97 00:04:44,620 --> 00:04:51,129 y ahora ya poner aquí el resultado de la suma 98 00:04:51,129 --> 00:04:55,170 que será calc.sumar 99 00:04:55,170 --> 00:04:58,709 ya está, como me devuelvo un entero 100 00:04:58,709 --> 00:05:00,769 pues lo convierto y se acabó 101 00:05:00,769 --> 00:05:17,480 entonces esto tiene más sentido 102 00:05:17,480 --> 00:05:19,579 mi aplicación va a usar cosas 103 00:05:19,579 --> 00:05:23,120 va a usar calculadoras, países, alumnos, facturas 104 00:05:23,120 --> 00:05:26,839 pues el diseño yo lo tendré que hacer 105 00:05:26,839 --> 00:05:28,740 igualmente de las entidades 106 00:05:28,740 --> 00:05:31,439 y ahora ya el controlador llama 107 00:05:31,439 --> 00:05:33,240 a los métodos de esas entidades 108 00:05:33,240 --> 00:05:35,259 para hacer lo que toque hacer, no se convierte 109 00:05:35,259 --> 00:05:36,519 él en una entidad 110 00:05:36,519 --> 00:05:39,660 él no se convierte en una calculadora 111 00:05:39,660 --> 00:05:41,639 no, usa una calculadora 112 00:05:41,639 --> 00:05:43,180 y llama a los métodos y lo que sea 113 00:05:43,180 --> 00:05:52,509 vale 114 00:05:52,509 --> 00:05:55,709 voy a ejecutarlo, no voy a hacer que algo de lo que haya 115 00:05:55,709 --> 00:05:57,829 escrito no tenga sentido 116 00:05:57,829 --> 00:06:04,199 donde tengo el 117 00:06:04,199 --> 00:06:06,180 más calculadora 118 00:06:06,180 --> 00:06:12,949 vale, pues venga 119 00:06:12,949 --> 00:06:16,089 234 120 00:06:16,089 --> 00:06:16,569 más 121 00:06:16,569 --> 00:06:18,750 45 122 00:06:18,750 --> 00:06:21,050 igual a 269 123 00:06:21,050 --> 00:06:24,029 vale, aquí en el 124 00:06:24,029 --> 00:06:25,990 evento de los botones también sería más 125 00:06:25,990 --> 00:06:27,589 bonito si lo ponemos 126 00:06:27,589 --> 00:06:29,949 un set focus, tendría que haber un método 127 00:06:29,949 --> 00:06:31,149 para hacer cual de las 128 00:06:31,149 --> 00:06:33,990 para que ganara el foco este, pero eso ya es 129 00:06:33,990 --> 00:06:35,569 ver los métodos, pero yo le doy a más 130 00:06:35,569 --> 00:06:37,949 y a mi me gustaría que se 131 00:06:37,949 --> 00:06:39,949 quedara aquí ya habilitado para que no tuviera yo 132 00:06:39,949 --> 00:06:41,949 que pulsar, hacer click ahí 133 00:06:41,949 --> 00:06:43,949 Pero habrá algún método 134 00:06:43,949 --> 00:06:46,810 Set focus o set lo que sea 135 00:06:46,810 --> 00:06:48,949 Para decidir cual quiero yo que sea visible 136 00:06:48,949 --> 00:06:50,670 Pero eso ya son las cositas 137 00:06:50,670 --> 00:06:52,649 Que uno se puede poner aquí 138 00:06:52,649 --> 00:06:54,129 A jugar y hacer el tonto 139 00:06:54,129 --> 00:07:01,000 Vale, bueno pues entonces 140 00:07:01,000 --> 00:07:03,160 Haced ahora vosotros 141 00:07:03,160 --> 00:07:05,379 Pues una aplicación 142 00:07:05,379 --> 00:07:06,759 Para averiguar 143 00:07:06,759 --> 00:07:09,740 Que te muestre 144 00:07:09,740 --> 00:07:13,120 El número de habitantes de una serie de países 145 00:07:13,120 --> 00:07:17,230 Tendrá un desplegable 146 00:07:17,230 --> 00:07:19,269 seleccionas el país y como respuesta 147 00:07:19,269 --> 00:07:20,610 tiene el país, te mostrará 148 00:07:20,610 --> 00:07:23,110 los habitantes de Nigeria 149 00:07:23,110 --> 00:07:24,649 son no sé cuántos mil 150 00:07:24,649 --> 00:07:27,810 ¿por qué no de Nigeria? 151 00:07:29,689 --> 00:07:30,750 aunque sea de Nigeria 152 00:07:30,750 --> 00:07:32,649 de Bali, de donde te dé la gana 153 00:07:32,649 --> 00:07:35,370 pero 154 00:07:35,370 --> 00:07:38,810 si el enunciado es 155 00:07:38,810 --> 00:07:41,129 aplicación que mediante un 156 00:07:41,129 --> 00:07:43,089 desplegable que te muestre países 157 00:07:43,089 --> 00:07:45,250 te muestre 158 00:07:45,250 --> 00:07:47,110 los habitantes del país en el que 159 00:07:47,110 --> 00:07:48,810 tomar más, ese es el enunciado 160 00:07:48,810 --> 00:07:50,689 vale, ahora empezamos a desgranar eso 161 00:07:50,689 --> 00:07:52,910 y te dice 162 00:07:52,910 --> 00:07:54,870 los habitantes de, Nigeria no le ha gustado 163 00:07:54,870 --> 00:07:56,990 pues yo que sé, los habitantes de Etiopía son 164 00:07:56,990 --> 00:07:58,850 los que sean, vale 165 00:07:58,850 --> 00:08:01,370 entonces, ahora ya empezamos a desgranar la aplicación 166 00:08:01,370 --> 00:08:03,350 la primera 167 00:08:03,350 --> 00:08:05,230 pregunta sería, ¿y de dónde sacan los datos? 168 00:08:05,230 --> 00:08:06,829 ¿se los inventa? hombre, pues no es feo 169 00:08:06,829 --> 00:08:08,769 los tendría que sacar de algún sitio 170 00:08:08,769 --> 00:08:11,129 de un fichero, lo ideal sería que 171 00:08:11,129 --> 00:08:13,189 estudiara una base de datos, pero no se los puede 172 00:08:13,189 --> 00:08:14,949 poner una base de datos, pues entonces 173 00:08:14,949 --> 00:08:16,029 Primera restricción 174 00:08:16,029 --> 00:08:20,220 Vamos a dejar la estructura de aplicación 175 00:08:20,220 --> 00:08:22,079 Lanzada con el fichero 176 00:08:22,079 --> 00:08:23,959 Para que lo hagáis todos igual 177 00:08:23,959 --> 00:08:26,399 Y luego ya hacer la vista 178 00:08:26,399 --> 00:08:28,259 Y el controller ya lo hacéis vosotros 179 00:08:28,259 --> 00:08:30,439 Entonces pues venga 180 00:08:30,439 --> 00:08:31,399 Si hacemos otra vez 181 00:08:31,399 --> 00:08:33,700 Y ahora ya copiamos en el 182 00:08:33,700 --> 00:08:35,399 Lo que hay que copiar 183 00:08:35,399 --> 00:08:40,940 Que sigue sin funcionar 184 00:08:40,940 --> 00:08:42,159 Pues ahora lo miramos 185 00:08:42,159 --> 00:08:43,919 Vale 186 00:08:43,919 --> 00:08:44,799 A ver 187 00:08:44,799 --> 00:08:51,460 Venga 188 00:08:51,460 --> 00:08:54,460 Es .dam1 189 00:08:54,460 --> 00:08:58,070 Países 190 00:08:58,070 --> 00:08:59,029 Voy a llamar a esta 191 00:08:59,029 --> 00:09:10,379 Países, le cambiamos 192 00:09:10,379 --> 00:09:11,860 La máquina virtual 193 00:09:11,860 --> 00:09:19,330 Y el nivel de compilación 194 00:09:19,330 --> 00:09:35,720 Vale, ya está 195 00:09:35,720 --> 00:09:38,340 Ahora, el POM 196 00:09:38,340 --> 00:09:41,000 Vamos a coger el nuestro de referencia 197 00:09:41,000 --> 00:09:42,740 De un proyecto que os haya 198 00:09:42,740 --> 00:09:43,519 Funcionado 199 00:09:43,519 --> 00:09:50,460 Cogemos todo lo que va de descripción hacia abajo 200 00:09:50,460 --> 00:09:54,750 Lo copiamos todo 201 00:09:54,750 --> 00:10:03,539 Y lo ponemos en el nuestro de países 202 00:10:03,539 --> 00:10:05,480 Debajo de descripción 203 00:10:05,480 --> 00:10:06,919 Pegamos 204 00:10:06,919 --> 00:10:09,580 Revisamos 205 00:10:09,580 --> 00:10:11,600 La aplicación 206 00:10:11,600 --> 00:10:13,159 El nombre de la clase 207 00:10:13,159 --> 00:10:14,580 Es uno app 208 00:10:14,580 --> 00:10:17,600 Países la voy a llamar yo 209 00:10:17,600 --> 00:10:18,879 Pues países 210 00:10:18,879 --> 00:10:21,580 Os acordáis de poner aquí vuestra clase main 211 00:10:21,580 --> 00:10:22,779 Como la vayáis a llamar 212 00:10:22,779 --> 00:10:25,320 Lo demás 213 00:10:25,320 --> 00:10:27,139 Vamos a usar la IMAX dependencia 214 00:10:27,139 --> 00:10:29,019 no hay que cambiar nada, nivel 25 215 00:10:29,019 --> 00:10:31,159 para que se quite ese rojo, la S 216 00:10:31,159 --> 00:10:32,639 vale 217 00:10:32,639 --> 00:10:37,299 y ahora 218 00:10:37,299 --> 00:10:39,879 me hago mi clase main 219 00:10:39,879 --> 00:10:44,559 mi paquete 220 00:10:44,559 --> 00:10:55,139 yo la he decidido llamar 221 00:10:55,139 --> 00:10:56,720 países, pues países 222 00:10:56,720 --> 00:11:03,480 tiene que heredar 223 00:11:03,480 --> 00:11:03,879 de 224 00:11:03,879 --> 00:11:05,919 application 225 00:11:05,919 --> 00:11:12,110 y por tanto implementar 226 00:11:12,110 --> 00:11:14,309 start 227 00:11:14,309 --> 00:11:19,909 y además 228 00:11:19,909 --> 00:11:40,779 de estar pues el main lógicamente que tenía que haberlo puesto vale y aquí pues vamos a copiar y 229 00:11:40,779 --> 00:12:06,240 pegar nuestro main este mismo países el start pues lo mismo yo puedo copiar y pegar vale en 230 00:12:06,240 --> 00:12:27,360 Voy a cambiar este nombre, le voy a cambiar el título a países y tendremos que generar un archivo países.fxml. 231 00:12:38,059 --> 00:12:40,000 Entonces, la arquitectura está. 232 00:12:47,980 --> 00:12:53,500 La pregunta que nos planteábamos, a ver, primero, la aplicación de dónde va a sacar los datos. 233 00:12:53,679 --> 00:12:56,799 Hemos dicho que no se los va a inventar, pues se los vamos a poner en un fichero. 234 00:12:57,519 --> 00:12:59,039 Vale, pues vamos a meter el fichero 235 00:12:59,039 --> 00:12:59,799 con los datos. 236 00:13:00,840 --> 00:13:01,820 Vamos a meterlo. 237 00:13:03,600 --> 00:13:05,240 Bueno, para que no se os complique 238 00:13:05,240 --> 00:13:07,220 la vida, pues aquí en el raíz del proyecto. 239 00:13:07,779 --> 00:13:08,820 En el raíz del proyecto 240 00:13:08,820 --> 00:13:10,840 y así no tenéis que ponerle ruta ni nada. 241 00:13:11,179 --> 00:13:13,320 Si lo ponéis en otro sitio, habría que ponerle 242 00:13:13,320 --> 00:13:15,159 ruta. O si lo ponéis en 243 00:13:15,159 --> 00:13:17,220 resursos, hay que tener cuidado con sacarlo 244 00:13:17,220 --> 00:13:18,960 de otra manera. Así que, 245 00:13:19,139 --> 00:13:21,360 porque el File Output Stream no va por 246 00:13:21,360 --> 00:13:23,179 módulos. 247 00:13:24,600 --> 00:13:25,000 No, 248 00:13:25,200 --> 00:13:26,940 porque, no, 249 00:13:27,519 --> 00:13:29,200 Porque este lo saca así 250 00:13:29,200 --> 00:13:30,679 El loader 251 00:13:30,679 --> 00:13:32,559 Pero el file input string 252 00:13:32,559 --> 00:13:34,559 File input string, file reader, file writer 253 00:13:34,559 --> 00:13:37,059 Va por otro lado, va por el java normal 254 00:13:37,059 --> 00:13:37,960 Entonces 255 00:13:37,960 --> 00:13:40,059 Podrías ponerlo en resources también 256 00:13:40,059 --> 00:13:41,399 Pero luego tienes que ponerlo en toda la ruta 257 00:13:41,399 --> 00:13:44,059 RSRC, main java, resources, no pasa nada 258 00:13:44,059 --> 00:13:44,840 ¿Vale? 259 00:13:45,960 --> 00:13:47,620 Venga, no, de hecho vamos a ponerlo en resources 260 00:13:47,620 --> 00:13:49,580 Vamos a dejarlo organizado, ponemos la ruta y ya está 261 00:13:49,580 --> 00:13:51,460 Y si no lo sacamos con el resource 262 00:13:51,460 --> 00:13:53,940 Es que no quiero volver a loco con eso, pero bueno 263 00:13:53,940 --> 00:13:55,620 A ver, vamos a poner aquí el fichero 264 00:13:55,620 --> 00:13:57,360 Nuestro fichero de datos 265 00:13:57,360 --> 00:13:58,600 Aquí, en recursos 266 00:13:58,600 --> 00:14:01,259 Realmente es su sitio 267 00:14:01,259 --> 00:14:02,360 Venga, nuevo fichero 268 00:14:02,360 --> 00:14:05,220 Y si queréis crear un 269 00:14:05,220 --> 00:14:07,200 Fxml vacío y luego 270 00:14:07,200 --> 00:14:09,200 Abrirlo con el open with 271 00:14:09,200 --> 00:14:10,080 Steam builder 272 00:14:10,080 --> 00:14:12,379 Ya de paso 273 00:14:12,379 --> 00:14:14,960 Vale, datos 274 00:14:14,960 --> 00:14:16,200 Datos 275 00:14:16,200 --> 00:14:19,259 Países, este va a ser 276 00:14:19,259 --> 00:14:19,860 Mi fichero 277 00:14:19,860 --> 00:14:23,299 Datos países punto 278 00:14:23,299 --> 00:14:27,940 Txt, venga 279 00:14:27,940 --> 00:14:29,500 Datos países está aquí 280 00:14:29,500 --> 00:14:31,379 Y ahora, pues venga 281 00:14:31,379 --> 00:14:32,340 A ver 282 00:14:32,340 --> 00:14:35,240 Vamos a pedirle a este 283 00:14:35,240 --> 00:14:37,740 Un listado 284 00:14:37,740 --> 00:14:38,059 De 285 00:14:38,059 --> 00:14:53,759 Un listado de 286 00:14:53,759 --> 00:14:57,940 A ver, para que el combo box no sea eterno 287 00:14:57,940 --> 00:15:00,120 Le vamos a poner 10, porque si no habría que paginarlo 288 00:15:00,120 --> 00:15:01,000 Que se puede paginar 289 00:15:01,000 --> 00:15:03,080 Pero bueno, vamos a poner un 10 290 00:15:03,080 --> 00:15:04,639 10 países 291 00:15:04,639 --> 00:15:08,240 Con sus habitantes 292 00:15:08,240 --> 00:15:11,700 Con el formato 293 00:15:11,700 --> 00:15:15,570 Nombre 294 00:15:15,570 --> 00:15:16,889 País 295 00:15:16,889 --> 00:15:18,590 Punto y coma 296 00:15:18,590 --> 00:15:21,470 Número habitantes 297 00:15:21,470 --> 00:15:29,379 Uno en cada línea 298 00:15:29,379 --> 00:15:35,389 Habitantes reales 299 00:15:35,389 --> 00:15:36,490 Que no se los inventé 300 00:15:36,490 --> 00:15:41,700 Venga, dale 301 00:15:41,700 --> 00:15:56,450 Jolín, mira que le he dicho uno en cada línea 302 00:15:56,450 --> 00:16:06,210 Pónmelos 303 00:16:06,210 --> 00:16:08,309 Separados 304 00:16:08,309 --> 00:16:08,669 Por 305 00:16:08,669 --> 00:16:11,610 Mira, ha salido Etiopía y Nigeria 306 00:16:11,610 --> 00:16:12,269 Toma ya 307 00:16:12,269 --> 00:16:14,289 No me lo puedo creer 308 00:16:14,289 --> 00:16:15,789 Con la cantidad de países que hay en el mundo 309 00:16:15,789 --> 00:16:20,409 No, es que me he oído hablar antes 310 00:16:20,409 --> 00:16:22,049 Te lo digo en serio 311 00:16:22,049 --> 00:16:23,610 Vale 312 00:16:23,610 --> 00:16:26,350 Ah, vale 313 00:16:26,350 --> 00:16:30,289 Bueno, hala, le voy a poner el salto de línea a yo 314 00:16:30,289 --> 00:16:31,210 Y a tomar por saco 315 00:16:31,210 --> 00:16:34,529 Porque si se me pone tonto 316 00:16:34,529 --> 00:16:37,789 Me voy a tirar más tiempo con esto 317 00:16:37,789 --> 00:16:43,409 Que escribiéndolo o llamándolo 318 00:16:43,409 --> 00:16:57,059 Bueno, es que no sé a qué he entrado 319 00:16:57,059 --> 00:16:59,559 Venga, da igual 320 00:16:59,559 --> 00:17:05,430 Es que he preguntado mal 321 00:17:05,430 --> 00:17:06,910 Lo he hecho mal 322 00:17:06,910 --> 00:17:07,529 Vale 323 00:17:07,529 --> 00:17:23,049 China 324 00:17:23,049 --> 00:17:25,690 Estados Unidos 325 00:17:25,690 --> 00:17:26,650 Indonesia 326 00:17:26,650 --> 00:17:28,509 Pakistán 327 00:17:28,509 --> 00:17:30,309 Nigeria 328 00:17:30,309 --> 00:17:32,029 Brasil 329 00:17:32,029 --> 00:17:33,769 Bangladesh 330 00:17:33,769 --> 00:17:36,109 Rusia y Etiopía 331 00:17:36,109 --> 00:17:38,230 Vale, aquí los tenemos 332 00:17:38,230 --> 00:17:41,210 A ver, este, pero como el fichero 333 00:17:41,210 --> 00:17:42,490 Lo tenemos que leer 334 00:17:42,490 --> 00:17:45,049 Y tenemos que entender los numeritos 335 00:17:45,049 --> 00:17:46,269 Estas comas fuera 336 00:17:46,269 --> 00:17:51,460 Madre mía, esto va a caber en un long 337 00:17:51,460 --> 00:17:55,519 ¿Qué? 338 00:17:56,660 --> 00:17:57,680 Sí, sí, sí 339 00:17:57,680 --> 00:17:58,480 A ver, los puntos 340 00:17:58,480 --> 00:18:00,180 ¿Aquí te han salido con puntos? 341 00:18:01,039 --> 00:18:02,960 Eso no haría falta porque lo va a entender 342 00:18:02,960 --> 00:18:04,539 El parsedable 343 00:18:04,539 --> 00:18:06,460 Si es una coma 344 00:18:06,460 --> 00:18:08,720 O sea, si es un punto de cifra decimal 345 00:18:08,720 --> 00:18:10,200 Pero 346 00:18:10,200 --> 00:18:11,339 Más bonito 347 00:18:11,339 --> 00:18:13,079 Como lo vamos a leer como entero 348 00:18:13,079 --> 00:18:14,680 Lo vais a leer como entero 349 00:18:14,680 --> 00:18:17,859 Vale, pues esos son los habitantes 350 00:18:17,859 --> 00:18:21,819 Este es el fichero de datos 351 00:18:21,819 --> 00:18:23,980 Vale, pues entonces 352 00:18:23,980 --> 00:18:24,420 Ahora 353 00:18:24,420 --> 00:18:26,839 ¿Qué es lo que tenéis que hacer vosotros? 354 00:18:28,460 --> 00:18:30,559 Buscar, ahora ya construir la interfaz 355 00:18:30,559 --> 00:18:32,279 Y 356 00:18:32,279 --> 00:18:35,200 El elemento 357 00:18:35,200 --> 00:18:37,099 Tendréis que buscar primero 358 00:18:37,099 --> 00:18:40,359 un elemento que sea capaz de mostrar en un desplegable 359 00:18:40,359 --> 00:18:41,539 una lista de datos 360 00:18:41,539 --> 00:18:44,000 si buscáis por ahí 361 00:18:44,000 --> 00:18:46,180 pues veréis que el habitual es el combo box 362 00:18:46,180 --> 00:18:47,859 ¿vale? lo buscáis 363 00:18:47,859 --> 00:18:50,119 lo ponéis y veis un poquito 364 00:18:50,119 --> 00:18:51,960 como funciona, sabréis como funciona 365 00:18:51,960 --> 00:18:54,140 entonces, cuando arranque la aplicación 366 00:18:54,140 --> 00:18:56,059 deberían arrancar ya todos los 367 00:18:56,059 --> 00:18:57,859 países puestos en el combo box 368 00:18:57,859 --> 00:19:00,180 luego eso nos lleva al método 369 00:19:00,180 --> 00:19:01,960 initialize, entonces el método 370 00:19:01,960 --> 00:19:03,259 initialize tendrá que 371 00:19:03,259 --> 00:19:05,220 leer de este fichero 372 00:19:05,220 --> 00:19:07,039 sacar los nombres 373 00:19:07,039 --> 00:19:08,980 de los países y ponerlos 374 00:19:08,980 --> 00:19:10,920 en el combo box, todo eso lo tiene que hacer 375 00:19:10,920 --> 00:19:12,079 inicialmente, vale 376 00:19:12,079 --> 00:19:14,759 y ahora a partir de ahí, el evento 377 00:19:14,759 --> 00:19:16,720 del combo box, que tendrá un evento 378 00:19:16,720 --> 00:19:18,839 tendréis que ver cuál es, si vale el on action 379 00:19:18,839 --> 00:19:20,019 o tiene que ser otro el evento 380 00:19:20,019 --> 00:19:22,519 tendrá que ser, cuando se dé al combo box 381 00:19:22,519 --> 00:19:23,940 tendrá que coger 382 00:19:23,940 --> 00:19:26,480 sobre lo que se haya clicado 383 00:19:26,480 --> 00:19:28,519 irse al fichero 384 00:19:28,519 --> 00:19:30,599 o a la colección 385 00:19:30,599 --> 00:19:32,339 si es que lo habéis guardado todos en una colección 386 00:19:32,339 --> 00:19:34,519 que tendría más sentido guardarlos todos en una colección 387 00:19:34,519 --> 00:19:36,740 al principio, irse a la colección 388 00:19:36,740 --> 00:19:38,420 coger el dato y ponerlo 389 00:19:38,420 --> 00:19:39,059 en una etiqueta 390 00:19:39,059 --> 00:19:43,680 ¿vale? venga pues ya está 391 00:19:43,680 --> 00:19:46,500 ¿eh? 392 00:19:47,720 --> 00:19:48,759 que me vaya 393 00:19:48,759 --> 00:19:52,200 aquí he copiado y pegado lo de siempre 394 00:19:52,200 --> 00:19:53,660 entonces 395 00:19:53,660 --> 00:19:55,740 países fxml pues lo hacéis con el 396 00:19:55,740 --> 00:19:57,839 steam builder, hacéis el controller que tendrá 397 00:19:57,839 --> 00:19:59,859 solo el initialize 398 00:19:59,859 --> 00:20:01,859 que es el que carga primero los países 399 00:20:01,859 --> 00:20:03,920 en el combo box y el evento 400 00:20:03,920 --> 00:20:06,140 del combo box, que es el que accede al fichero 401 00:20:06,140 --> 00:20:07,059 o a la colección 402 00:20:07,059 --> 00:20:09,519 si los habéis volcado previamente 403 00:20:09,519 --> 00:20:14,640 pues ala, venga