1 00:00:03,120 --> 00:00:05,179 vale pues este primer ejemplito 2 00:00:05,179 --> 00:00:07,139 lógicamente era muy sencillo porque aquí 3 00:00:07,139 --> 00:00:09,060 es que no teníamos que hacer 4 00:00:09,060 --> 00:00:11,439 ninguna operación 5 00:00:11,439 --> 00:00:12,779 extraña ni hacer nada 6 00:00:12,779 --> 00:00:15,259 entonces no hay más clases que 7 00:00:15,259 --> 00:00:16,980 esta, el controller y se acabó 8 00:00:16,980 --> 00:00:19,239 pero desde el momento en que nuestra 9 00:00:19,239 --> 00:00:21,219 aplicación ya va a hacer un montón de cosas 10 00:00:21,219 --> 00:00:23,160 operar, acceder a no sé qué, leer 11 00:00:23,160 --> 00:00:24,500 un fichero de no sé cuántos 12 00:00:24,500 --> 00:00:27,219 todo eso que se va a hacer en estos 13 00:00:27,219 --> 00:00:29,179 métodos del controller, que se va a hacer 14 00:00:29,179 --> 00:00:31,140 en estos métodos lógicamente porque 15 00:00:31,140 --> 00:00:33,399 todo el back de mi 16 00:00:33,399 --> 00:00:35,439 interfaz va a parar 17 00:00:35,439 --> 00:00:37,219 aquí, todo eso no lo voy a meter ahí 18 00:00:37,219 --> 00:00:38,979 no voy a convertir el controller de repente 19 00:00:38,979 --> 00:00:41,240 en la clase única de mi aplicación que lo tiene 20 00:00:41,240 --> 00:00:43,140 todo, o sea 21 00:00:43,140 --> 00:00:44,780 la lógica de mi aplicación 22 00:00:44,780 --> 00:00:47,399 no debe vivir aquí dentro 23 00:00:47,399 --> 00:00:49,579 ni las propiedades con las que trabaja 24 00:00:49,579 --> 00:00:51,600 si trabaja con un nombre de fichero 25 00:00:51,600 --> 00:00:53,280 si trabaja con no sé qué, o sea no debe 26 00:00:53,280 --> 00:00:54,899 vivir todo aquí dentro mezclado 27 00:00:54,899 --> 00:00:57,320 aquí en este caso es que no hacía nada 28 00:00:57,320 --> 00:00:59,039 trabajar con esta etiqueta 29 00:00:59,039 --> 00:01:01,359 ¿Vale? Entonces, desde el momento en que ya 30 00:01:01,359 --> 00:01:03,359 Empezamos a trabajar, la aplicación hace más cosas 31 00:01:03,359 --> 00:01:05,340 Pues ya hay que organizarla de otra manera 32 00:01:05,340 --> 00:01:07,560 El controlador no puede ir engordando y engordando 33 00:01:07,560 --> 00:01:08,319 ¿Vale? 34 00:01:08,900 --> 00:01:10,840 Ya tendremos que empezar a crear 35 00:01:10,840 --> 00:01:13,219 Hacer un diseño 36 00:01:13,219 --> 00:01:15,299 Hacer pues las entidades 37 00:01:15,299 --> 00:01:16,840 Con las que trabaja mi aplicación 38 00:01:16,840 --> 00:01:19,379 La clase de gestor de operaciones 39 00:01:19,379 --> 00:01:21,299 Lo que sea, y el control ya irá llamando 40 00:01:21,299 --> 00:01:22,719 A lo que toque, ¿vale? 41 00:01:24,379 --> 00:01:25,200 Entonces, pues 42 00:01:25,200 --> 00:01:27,560 A ver, por ejemplo 43 00:01:27,560 --> 00:01:28,239 Para 44 00:01:28,239 --> 00:01:32,700 Un ejemplito básico 45 00:01:32,700 --> 00:01:35,000 Y luego ya planteamos uno que hagáis vosotros 46 00:01:35,000 --> 00:01:36,140 Que acceda a ficheros 47 00:01:36,140 --> 00:01:38,159 Y así practicáis los ficheros 48 00:01:38,159 --> 00:01:40,599 Pues por ejemplo, sobre este mismo 49 00:01:40,599 --> 00:01:42,620 Que tenía un botón que saludaba 50 00:01:42,620 --> 00:01:45,799 Bueno, este ejemplo lo dejamos así 51 00:01:45,799 --> 00:01:46,939 Y así lo subo así tal cual 52 00:01:46,939 --> 00:01:48,959 Y vamos a hacer otro desde el principio 53 00:01:48,959 --> 00:01:50,640 Que sea una calculadora mínima 54 00:01:50,640 --> 00:01:52,700 ¿Vale? Una calculadora mínima 55 00:01:52,700 --> 00:01:54,459 Pero ya tiene que operar 56 00:01:54,459 --> 00:01:55,319 Hacer algunas cosas 57 00:01:55,319 --> 00:01:58,219 Entonces, venga, pues a ver 58 00:01:58,219 --> 00:02:02,459 perdón 59 00:02:02,459 --> 00:02:06,439 R Gómez 4 60 00:02:06,439 --> 00:02:10,520 vale, venga pues vamos a hacer 61 00:02:10,520 --> 00:02:11,960 un proyecto desde el principio 62 00:02:11,960 --> 00:02:13,759 perdón 63 00:02:13,759 --> 00:02:16,819 educa madrid 64 00:02:16,819 --> 00:02:19,379 educa.madrid.org 65 00:02:19,379 --> 00:02:20,259 el mismo que el vuestro 66 00:02:20,259 --> 00:02:22,139 el único correo que podemos usar 67 00:02:22,139 --> 00:02:24,599 sin que nos lleven a la cárcel de la comunidad 68 00:02:24,599 --> 00:02:25,099 de Madrid 69 00:02:25,099 --> 00:02:29,740 tienen una cárcel ahí para la gente que usa 70 00:02:29,740 --> 00:02:31,639 recursos ajenos a la comuna 71 00:02:31,639 --> 00:02:32,900 Duca Madrid 72 00:02:32,900 --> 00:02:37,900 vale, a ver pues venga 73 00:02:37,900 --> 00:02:39,840 nuevo proyecto 74 00:02:39,840 --> 00:02:41,639 vale 75 00:02:41,639 --> 00:02:42,379 para 76 00:02:42,379 --> 00:02:44,919 el próximo día porque 77 00:02:44,919 --> 00:02:49,819 vamos a poner el plugin de Eclipse 78 00:02:49,819 --> 00:02:51,960 pero pasado el examen, para que lo podáis 79 00:02:51,960 --> 00:02:53,900 hacer sin Maven, si a alguien 80 00:02:53,900 --> 00:02:55,139 le gusta más sin Maven 81 00:02:55,139 --> 00:02:58,039 pero por ahora vamos a seguir trabajando 82 00:02:58,039 --> 00:03:46,990 Pues venga, un nuevo proyecto, proyecto sencillito, en mi caso lo añado aquí, venga, mi grupo, pues el dominio, el dominio de mis proyectos, pues el dominio de todas mis aplicaciones, pues es este, perdón, vale, pues luego en el cambio de clase, ala, calculadora mínima, vale, ya está. 83 00:03:47,590 --> 00:04:11,280 Vale, primero, dentro de la lista de ítems, cuidado con la máquina virtual 1.8, no es compatible con la última versión de JavaX, pues lo cambiamos, tanto la máquina virtual con la que vamos a trabajar, como el nivel de compilación que debería ser acorde. 84 00:04:11,280 --> 00:04:24,740 vale 85 00:04:24,740 --> 00:04:27,339 ahora, como es un 86 00:04:27,339 --> 00:04:28,819 proyecto maven 87 00:04:28,819 --> 00:04:30,720 lo primero que abrimos es esto 88 00:04:30,720 --> 00:04:33,860 para configurar el funcionamiento 89 00:04:33,860 --> 00:04:35,439 de la herramienta maven, claro 90 00:04:35,439 --> 00:04:37,519 para quitarle la cosita roja 91 00:04:37,519 --> 00:04:39,860 que podríamos no quitarla y no pasaría nada 92 00:04:39,860 --> 00:04:41,680 pues la S 93 00:04:41,680 --> 00:04:43,500 famosa y ahora 94 00:04:43,500 --> 00:04:45,699 aquí es donde ponemos las librerías de las que 95 00:04:45,699 --> 00:04:47,680 dependemos, los plugins que va a 96 00:04:47,680 --> 00:04:49,939 ejecutar maven si va a ejecutar alguno 97 00:04:49,939 --> 00:04:51,699 etcétera, nuestro caso 98 00:04:51,699 --> 00:04:55,759 son aplicaciones sota, caballo y rey, todas java fx 99 00:04:55,759 --> 00:04:58,699 pues copiamos de otro y ya está 100 00:04:58,699 --> 00:05:03,560 pues copiamos de el último cualquiera que 101 00:05:03,560 --> 00:05:06,819 hayamos hecho, que nos haya funcionado 102 00:05:06,819 --> 00:05:12,060 pues desde el escritorio hacia abajo, las propiedades, las dependencias 103 00:05:12,060 --> 00:05:20,699 y el plugin, vale 104 00:05:20,699 --> 00:05:25,000 guardamos y automáticamente ya 105 00:05:25,000 --> 00:05:26,920 se habrá abierto 106 00:05:26,920 --> 00:05:29,160 la carpetita de 107 00:05:29,160 --> 00:05:31,160 maven dependencia 108 00:05:31,160 --> 00:05:31,959 si es que está ahí 109 00:05:31,959 --> 00:05:37,360 vale, pues ya podemos empezar a hacer la aplicación 110 00:05:37,360 --> 00:05:39,339 pues venga 111 00:05:39,339 --> 00:05:49,370 me hago mi paquete con mi aplicación 112 00:05:49,370 --> 00:05:50,930 es .dam 113 00:05:50,930 --> 00:05:53,009 1.app por ejemplo 114 00:05:53,009 --> 00:06:12,490 este tiene mi main 115 00:06:12,490 --> 00:06:26,360 y ya sabemos que la clase raíz de JavaX hereda extends de application 116 00:06:26,360 --> 00:06:42,620 y al heredar de application pues tiene que implementar este método 117 00:06:42,620 --> 00:06:46,759 y este método es el que construye la vista, asocia los eventos, todo eso 118 00:06:46,759 --> 00:06:48,899 Si lo hacemos con fxml 119 00:06:48,899 --> 00:06:50,819 Pues podemos copiar y pegar 120 00:06:50,819 --> 00:06:53,100 Directamente estas primeras líneas 121 00:06:53,100 --> 00:06:54,699 Todo esto podemos si queremos 122 00:06:54,699 --> 00:06:58,339 Copiamos y pegamos esto 123 00:06:58,339 --> 00:07:02,149 Vale 124 00:07:02,149 --> 00:07:05,050 Aquí yo le cambio el nombrecito 125 00:07:05,050 --> 00:07:07,660 Y 126 00:07:07,660 --> 00:07:09,639 Lógicamente no podemos 127 00:07:09,639 --> 00:07:11,360 Y el main pues es el que tiene 128 00:07:11,360 --> 00:07:14,399 El que lanza la aplicación 129 00:07:14,399 --> 00:07:19,540 Vale 130 00:07:19,540 --> 00:07:21,740 Y aquí no puedo ejecutar esto 131 00:07:21,740 --> 00:07:23,600 Bueno vamos a cambiar el título 132 00:07:23,600 --> 00:07:25,139 Por calculadora 133 00:07:25,139 --> 00:07:32,839 Y aquí no puedo ejecutar la aplicación 134 00:07:32,839 --> 00:07:34,600 Porque lógicamente me falta 135 00:07:34,600 --> 00:07:36,660 El fichero de vista que no he generado 136 00:07:36,660 --> 00:07:40,540 ¿Vale? Entonces ya que estamos 137 00:07:40,540 --> 00:07:42,720 Ahora mismo en Eclipse, antes de irnos al Steam Builder 138 00:07:42,720 --> 00:07:44,439 Vamos a hacernos el controlador 139 00:07:44,439 --> 00:07:45,500 Por ahora vacío 140 00:07:45,500 --> 00:07:46,920 Venga 141 00:07:46,920 --> 00:07:50,620 Un pelincito 142 00:07:50,620 --> 00:07:51,800 ¿Qué? 143 00:07:51,800 --> 00:07:52,519 ¿Qué es lo que nos pregunta? 144 00:07:52,920 --> 00:07:53,220 Dime 145 00:07:53,220 --> 00:07:55,360 ¿Que salió a punto de que se viene? 146 00:07:55,459 --> 00:07:55,920 ¿Dónde lo va a poner? 147 00:07:55,920 --> 00:08:00,439 contéstate tú a ti mismo 148 00:08:00,439 --> 00:08:02,360 recordando del viernes pasado 149 00:08:02,360 --> 00:08:03,279 claro, no, o sea 150 00:08:03,279 --> 00:08:05,939 lo puedo meter en cualquier sitio 151 00:08:05,939 --> 00:08:07,680 pero entonces tengo que poner aquí la ruta 152 00:08:07,680 --> 00:08:10,040 a la que llegue, entonces como la carpeta 153 00:08:10,040 --> 00:08:12,680 resources está directamente 154 00:08:12,680 --> 00:08:13,579 en el pad de maven 155 00:08:13,579 --> 00:08:16,319 pues la pongo aquí, si la pongo 156 00:08:16,319 --> 00:08:18,339 en recursos, puedo poner la ruta de esta manera 157 00:08:18,339 --> 00:08:20,620 y ya está, con la barrita delante 158 00:08:20,620 --> 00:08:22,379 a mí me va sin poner 159 00:08:22,379 --> 00:08:25,180 la ruta 160 00:08:25,180 --> 00:08:28,519 claro, si tú lo pones 161 00:08:28,519 --> 00:08:30,879 directamente donde está el código fuente 162 00:08:30,879 --> 00:08:32,779 como eso también está en el pad 163 00:08:32,779 --> 00:08:34,879 también te iría, le quitas la barrita y ya está 164 00:08:34,879 --> 00:08:35,759 lo único es que 165 00:08:35,759 --> 00:08:38,519 a ver, la clave es 166 00:08:38,519 --> 00:08:40,500 lo tienes que poner 167 00:08:40,500 --> 00:08:42,899 en un fichero, perdón, en una 168 00:08:42,899 --> 00:08:44,159 ruta que esté en el pad 169 00:08:44,159 --> 00:08:47,080 y si no está en el pad, accesible desde el pad 170 00:08:47,080 --> 00:08:48,659 y poniéndola aquí, ya está 171 00:08:48,659 --> 00:08:49,940 no es que haya lo que pase 172 00:08:49,940 --> 00:08:52,879 si encaja la ruta que tú le has puesto 173 00:08:52,879 --> 00:08:54,779 encaja con la que pones aquí, no hay ningún problema 174 00:08:54,779 --> 00:09:00,159 Ni yo tampoco 175 00:09:00,159 --> 00:09:02,879 ¿A qué te refieres con que yo no lo he puesto? 176 00:09:05,840 --> 00:09:06,940 Vale, y luego has puesto 177 00:09:06,940 --> 00:09:08,120 El nombre del fichero aquí 178 00:09:08,120 --> 00:09:10,700 Y yo también, pero claro porque 179 00:09:10,700 --> 00:09:12,740 Resources está metido en el PAD 180 00:09:12,740 --> 00:09:16,919 El PAD es 181 00:09:16,919 --> 00:09:18,740 El conjunto de rutas 182 00:09:18,740 --> 00:09:20,700 Que son accesibles directamente 183 00:09:20,700 --> 00:09:22,220 Vale, entonces no hace falta 184 00:09:22,220 --> 00:09:24,759 No, tiene 185 00:09:24,759 --> 00:09:25,960 Tienes que poner la barrita, eso sí. 186 00:09:26,080 --> 00:09:27,080 La barrita hay que ponerla. 187 00:09:27,159 --> 00:09:28,320 Claro, eso sí, ¿vale? 188 00:09:30,580 --> 00:09:32,220 Vale, sí, es como lo hicimos el otro día. 189 00:09:32,600 --> 00:09:34,480 Vale, entonces, bueno, a esta la voy a cambiar ya de nombre 190 00:09:34,480 --> 00:09:35,580 porque no la voy a llamar saluda. 191 00:09:35,700 --> 00:09:40,139 Cuando la generemos la vamos a llamar, pues, calculadora. 192 00:09:40,440 --> 00:09:43,039 Por ejemplo, calculadora FXML. 193 00:09:43,279 --> 00:09:47,700 La vamos a llamar, ¿vale? 194 00:09:48,519 --> 00:09:51,440 Y, a ver, ya que estamos en Eclipse, 195 00:09:51,440 --> 00:09:53,440 vamos a adelantarnos y vamos a hacer el control, ¿eh? 196 00:09:54,000 --> 00:09:55,179 Vean lo que estábamos, ¿vale? 197 00:09:55,179 --> 00:09:57,379 pues venga 198 00:09:57,379 --> 00:09:58,480 nos hacemos 199 00:09:58,480 --> 00:10:01,480 el paquete con el controller 200 00:10:01,480 --> 00:10:06,840 es .damp1.controller 201 00:10:06,840 --> 00:10:09,799 y ahora aquí vamos a poner 202 00:10:09,799 --> 00:10:10,899 nuestro controlador 203 00:10:10,899 --> 00:10:22,240 vale pues el controlador tendrá 204 00:10:22,240 --> 00:10:24,159 pondremos en él 205 00:10:24,159 --> 00:10:26,919 los controles 206 00:10:26,919 --> 00:10:28,080 los elementos de la vista 207 00:10:28,080 --> 00:10:29,039 los que vaya a acceder 208 00:10:29,039 --> 00:10:31,179 y luego los métodos 209 00:10:31,179 --> 00:10:33,600 con los que vamos a responder 210 00:10:33,600 --> 00:10:34,440 a los eventos 211 00:10:34,440 --> 00:10:36,139 el controller 212 00:10:36,139 --> 00:10:39,519 le podemos poner opcionalmente 213 00:10:39,519 --> 00:10:40,740 un método 214 00:10:40,740 --> 00:10:41,940 inicialice 215 00:10:41,940 --> 00:10:47,389 no sé si lo he escrito bien 216 00:10:47,389 --> 00:10:52,929 a ver si lo he escrito 217 00:10:52,929 --> 00:10:54,029 bien 218 00:11:09,309 --> 00:11:10,649 ah sí, pero tienes razón 219 00:11:10,649 --> 00:11:12,129 vale, vale, sí, sí, sí 220 00:11:12,129 --> 00:11:15,250 sí, no puedo comprobar 221 00:11:15,250 --> 00:11:16,350 pero yo creo que se llama así 222 00:11:16,350 --> 00:11:18,789 vale, entonces, este método 223 00:11:18,789 --> 00:11:20,870 lo puedo poner o no, no es obligatorio 224 00:11:20,870 --> 00:11:22,909 vale, este método 225 00:11:22,909 --> 00:11:24,830 se ejecuta, si está puesto 226 00:11:24,830 --> 00:11:26,870 lo que hay dentro, se ejecuta 227 00:11:27,549 --> 00:11:29,009 conforme se carga 228 00:11:29,009 --> 00:11:29,470 la vista 229 00:11:29,470 --> 00:11:32,789 entonces, por ejemplo, si yo estoy haciendo una aplicación 230 00:11:32,789 --> 00:11:35,149 en la cual me haya puesto unos desplegables 231 00:11:35,149 --> 00:11:36,690 que quiero que aparezcan 232 00:11:36,690 --> 00:11:38,809 para elegir ciudades, las ciudades las tengo 233 00:11:38,809 --> 00:11:40,750 en un fichero, por ejemplo, pues mira 234 00:11:40,750 --> 00:11:42,929 eso lo puedes hacer luego, entonces en un fichero 235 00:11:42,929 --> 00:11:45,210 de texto tienes nombre, y tú quieres que cuando arranque la aplicación 236 00:11:45,210 --> 00:11:47,269 te aparezca en un desplegable 237 00:11:47,269 --> 00:11:49,690 las ciudades que tienes para seleccionarlas 238 00:11:49,690 --> 00:11:51,789 y que te muestre los habitantes de cada ciudad 239 00:11:51,789 --> 00:11:52,470 lo que sea 240 00:11:52,470 --> 00:11:55,649 algo así luego cuando hagamos este ejemplito 241 00:11:55,649 --> 00:11:57,450 lo planteamos así 242 00:11:57,450 --> 00:11:59,230 el evento del desplegable ese 243 00:11:59,230 --> 00:12:01,590 será acceder al fichero 244 00:12:01,590 --> 00:12:03,610 para mirar en la línea de la ciudad 245 00:12:03,610 --> 00:12:04,990 los habitantes que tiene, etc. 246 00:12:05,210 --> 00:12:06,610 y habrá que hacer un initialize 247 00:12:06,610 --> 00:12:09,049 para que cuando arranque la aplicación 248 00:12:09,049 --> 00:12:10,730 se carguen en ese desplegable 249 00:12:10,730 --> 00:12:12,470 los nombres de las ciudades que hay en el fichero 250 00:12:12,470 --> 00:12:14,330 entonces en nuestro caso 251 00:12:14,330 --> 00:12:16,450 para asegurarnos de que funciona 252 00:12:16,450 --> 00:12:17,809 le voy a poner aquí simplemente 253 00:12:17,809 --> 00:12:20,129 una especie de consola 254 00:12:20,129 --> 00:12:22,690 arrancando aplicación 255 00:12:22,690 --> 00:12:24,809 para ver si en la consola 256 00:12:24,809 --> 00:12:26,690 nos aparece que esté arrancando la aplicación 257 00:12:26,690 --> 00:12:27,970 vale 258 00:12:27,970 --> 00:12:30,190 vale, pues entonces, dime 259 00:12:30,190 --> 00:12:43,090 si, pero bueno 260 00:12:43,090 --> 00:12:45,090 puedes no, o sea, se va a ejecutar 261 00:12:45,090 --> 00:12:47,269 aunque no implementes inicializable 262 00:12:47,269 --> 00:12:50,409 ¿Vale? O sea, no es obligatorio, simplemente es inicializable 263 00:12:50,409 --> 00:12:52,190 Creo recordar, si no, ahora lo comprobamos 264 00:12:52,190 --> 00:12:53,710 ¿Vale? Si no, ¿vale? 265 00:13:00,200 --> 00:13:00,600 Vale 266 00:13:00,600 --> 00:13:01,220 A ver 267 00:13:01,220 --> 00:13:04,179 Ahora ya sí que sí, nos vamos al 268 00:13:04,179 --> 00:13:05,139 Steam Builder 269 00:13:05,139 --> 00:13:12,700 Sí 270 00:13:12,700 --> 00:13:24,600 Venga, pues a ver 271 00:13:24,600 --> 00:13:26,639 Aquí 272 00:13:26,639 --> 00:13:29,100 El que uno quiera 273 00:13:29,100 --> 00:13:31,639 Se supone 274 00:13:31,639 --> 00:13:33,840 Que los que ya tienen una distribución 275 00:13:33,840 --> 00:13:35,720 fijada, pues se asocian 276 00:13:35,720 --> 00:13:37,840 a los aspectos habituales de las aplicaciones 277 00:13:37,840 --> 00:13:39,379 que vemos, responden a lo que normalmente 278 00:13:39,379 --> 00:13:41,740 las aplicaciones al final acaban, las interfaces 279 00:13:41,740 --> 00:13:43,679 acaban respondiendo a sota, caballo y rey 280 00:13:43,679 --> 00:13:46,139 pues un menú a la izquierda 281 00:13:46,139 --> 00:13:47,940 con las cositas, luego a la derecha 282 00:13:47,940 --> 00:13:49,799 casi todas acaban siendo iguales 283 00:13:49,799 --> 00:13:51,600 pues los paneles de la izquierda 284 00:13:51,600 --> 00:13:53,559 responden a los aspectos típicos 285 00:13:53,559 --> 00:13:55,679 de las interfaces, entonces pues uno puede seleccionar 286 00:13:55,679 --> 00:13:57,639 uno, pero claro, si seleccionáis uno 287 00:13:57,639 --> 00:13:58,879 que no sea el de ancla 288 00:13:58,879 --> 00:14:01,460 entonces hay que colocar los elementos 289 00:14:01,460 --> 00:14:03,200 respetando esa distribución 290 00:14:03,200 --> 00:14:04,919 a la que te obliga ese panel 291 00:14:04,919 --> 00:14:07,399 vale, ahí a vosotros podéis 292 00:14:07,399 --> 00:14:09,360 probar y lo que sea, pues este es el 293 00:14:09,360 --> 00:14:10,340 típico de rejilla 294 00:14:10,340 --> 00:14:13,299 este es el típico que tiene pues la zona 295 00:14:13,299 --> 00:14:15,139 de ítems aquí, la zona 296 00:14:15,139 --> 00:14:17,419 abajo de no sé qué, pero bueno 297 00:14:17,419 --> 00:14:19,419 vamos a ponerle, yo le voy a 298 00:14:19,419 --> 00:14:21,440 poner este para hacer una calculadora, poner los botones 299 00:14:21,440 --> 00:14:28,549 donde nos dé la gana, vale 300 00:14:28,549 --> 00:14:31,590 que feo el que 301 00:14:31,590 --> 00:14:37,419 vamos a ver, porque sea blanco 302 00:14:37,419 --> 00:14:38,820 es feo, tiene que tener cositas 303 00:14:38,820 --> 00:14:43,029 Venga, pues a ver 304 00:14:43,029 --> 00:14:45,210 La calculadora va a tener 305 00:14:45,210 --> 00:14:46,789 Un área de texto 306 00:14:46,789 --> 00:14:47,870 Para los datos 307 00:14:47,870 --> 00:14:50,470 Pues sale, esto ya es un control 308 00:14:50,470 --> 00:14:52,309 Un text fill 309 00:14:52,309 --> 00:14:55,350 Entonces para meter datos en un área de texto 310 00:14:55,350 --> 00:14:57,049 Pues uno cotillea 311 00:14:57,049 --> 00:14:58,570 Busca y al final deduce 312 00:14:58,570 --> 00:15:00,769 Que el elemento que mejor va a pegar 313 00:15:00,769 --> 00:15:01,129 Es el 314 00:15:01,129 --> 00:15:06,779 Pues buscad como os dé la gana 315 00:15:06,779 --> 00:15:11,690 ¿Vale? 316 00:15:16,429 --> 00:15:23,230 Venga, pues ahí tenemos nuestro textfield, nos suena por el nombre a que es para meter datos en área de texto. 317 00:15:23,669 --> 00:15:25,370 Vale, ahora botoncitos. 318 00:15:34,779 --> 00:15:35,259 ¿Cómo? 319 00:15:37,320 --> 00:15:40,809 ¿Qué era lo de arriba? 320 00:15:41,809 --> 00:15:46,370 Un textfield, un campo de texto para meter datos, números, lo que sea. 321 00:15:46,370 --> 00:15:48,649 entonces vamos a hacer una calculadora 322 00:15:48,649 --> 00:15:50,889 sencillísima 323 00:15:50,889 --> 00:15:52,210 con 324 00:15:52,210 --> 00:15:55,090 la operación sumar 325 00:15:55,090 --> 00:15:55,570 entonces 326 00:15:55,570 --> 00:15:58,950 bueno antes que nada el text fill 327 00:15:58,950 --> 00:16:01,090 el text fill va a necesitar ser accesible 328 00:16:01,090 --> 00:16:03,009 desde java por supuesto porque tengo 329 00:16:03,009 --> 00:16:05,029 que recoger de él el dato que 330 00:16:05,029 --> 00:16:06,929 haya escrito el usuario vamos a ponerle un 331 00:16:06,929 --> 00:16:09,429 nombrecito pues lo seleccionamos 332 00:16:09,429 --> 00:16:11,429 en botón derecho en código 333 00:16:11,429 --> 00:16:14,549 le ponemos el nombrecito 334 00:16:14,549 --> 00:16:16,490 Pues dato 335 00:16:16,490 --> 00:16:18,330 O como lo queramos llamar 336 00:16:18,330 --> 00:16:21,090 Esa variable java 337 00:16:21,090 --> 00:16:22,549 De textfield se va a llamar dato 338 00:16:22,549 --> 00:16:26,440 Estos tres botones van a ser solo 339 00:16:26,440 --> 00:16:27,820 Para recoger el evento 340 00:16:27,820 --> 00:16:30,379 Pues sumar, restar 341 00:16:30,379 --> 00:16:32,600 E igual 342 00:16:32,600 --> 00:16:34,500 Pues entonces no les vamos a dar nombre 343 00:16:34,500 --> 00:16:36,639 Porque no lo tenemos que hacer desde java 344 00:16:36,639 --> 00:16:38,139 Pero a este si que le vamos a poner 345 00:16:38,139 --> 00:16:39,899 En propiedades 346 00:16:39,899 --> 00:16:42,600 Más 347 00:16:42,600 --> 00:16:43,940 Este va a ser más 348 00:16:43,940 --> 00:16:46,159 al text field lo he llamado dato 349 00:16:46,159 --> 00:16:48,320 pero bueno, llámalo tú como quieras 350 00:16:48,320 --> 00:16:49,600 a este botón 351 00:16:49,600 --> 00:16:52,340 vamos a hacer una versión rapidísima y corta 352 00:16:52,340 --> 00:16:53,940 de calculadora para que luego ya podáis 353 00:16:53,940 --> 00:16:56,120 vosotros trabajar 354 00:16:56,120 --> 00:16:59,759 y a este igual 355 00:16:59,759 --> 00:17:01,580 vale 356 00:17:01,580 --> 00:17:12,970 a ver, el texto más 357 00:17:12,970 --> 00:17:14,170 lo vamos a ponerlo 358 00:17:14,170 --> 00:17:16,849 un poco más grande porque si no no se ve nada 359 00:17:16,849 --> 00:17:20,849 así 360 00:17:20,849 --> 00:17:21,950 para mí, pues 361 00:17:21,950 --> 00:17:35,630 Ala, la mía se queda así 362 00:17:35,630 --> 00:17:36,950 Vosotros como sois más 363 00:17:36,950 --> 00:17:40,950 De perder el tiempo 364 00:17:40,950 --> 00:17:42,730 La dejáis más bonito 365 00:17:42,730 --> 00:17:44,089 Si queréis 366 00:17:44,089 --> 00:17:46,150 Vale, pues entonces 367 00:17:46,150 --> 00:17:49,630 Va a haber la respuesta a más 368 00:17:49,630 --> 00:17:50,769 La respuesta a menos 369 00:17:50,769 --> 00:17:51,890 Y la respuesta a igual 370 00:17:51,890 --> 00:17:55,170 Y vamos a tener que indicar 371 00:17:55,170 --> 00:17:57,369 El controller que tiene los métodos 372 00:17:57,369 --> 00:17:58,230 De esas respuestas 373 00:17:58,230 --> 00:18:00,750 Pues venga, el controller lo poníamos aquí 374 00:18:00,750 --> 00:18:03,650 Aquí abajo 375 00:18:03,650 --> 00:18:05,430 Controller 376 00:18:05,430 --> 00:18:06,990 Mi clase controller es 377 00:18:06,990 --> 00:18:15,529 .da1.controller.controller 378 00:18:15,529 --> 00:18:16,369 Creo recordar 379 00:18:16,369 --> 00:18:19,130 Vale 380 00:18:19,130 --> 00:18:21,210 Yo creo que está todo lo necesario 381 00:18:21,210 --> 00:18:22,569 Para hacer el 382 00:18:22,569 --> 00:18:25,130 El fxid 383 00:18:25,690 --> 00:18:27,130 El fxml 384 00:18:27,789 --> 00:18:30,089 Vale 385 00:18:30,089 --> 00:18:34,869 Save as 386 00:18:34,869 --> 00:18:35,730 A ver 387 00:18:35,730 --> 00:18:49,339 Sí 388 00:18:49,339 --> 00:18:56,079 Tú lo abres con la 389 00:18:56,079 --> 00:18:58,740 Desde el Eclipse lo puedes abrir con la aplicación que quieras 390 00:18:58,740 --> 00:19:00,160 Lógicamente si lo abres con esa 391 00:19:00,160 --> 00:19:03,640 A ver 392 00:19:03,640 --> 00:19:18,200 Tengo los usuarios. 393 00:19:22,359 --> 00:19:27,880 Vale. 394 00:19:36,750 --> 00:19:48,539 ¿Dónde lo tengo? 395 00:19:50,339 --> 00:19:51,160 Ah, aquí está. 396 00:19:52,119 --> 00:19:52,440 Vale. 397 00:19:52,440 --> 00:19:57,970 Vale, pues entonces yo ya lo tengo aquí. 398 00:19:59,589 --> 00:20:24,000 calculadora.fxml vale vamos a refrescar vale y aquí está el controller 399 00:20:27,740 --> 00:20:38,380 bueno pues ya está entonces ahora ya puede empezar a hacer el controller vale aquí 400 00:20:38,380 --> 00:20:41,039 si no pongo 401 00:20:41,039 --> 00:20:42,859 el fxml no va a ser 402 00:20:42,859 --> 00:20:44,519 el initialize del fxml 403 00:20:44,519 --> 00:20:46,480 vale, aquí se me ha olvidado anotarlo 404 00:20:46,480 --> 00:20:48,619 tiene que ser el initialize de java x 405 00:20:48,619 --> 00:20:50,480 vale, que 406 00:20:50,480 --> 00:20:52,819 yo creo que si que va a haber que implementar la interfaz 407 00:20:52,819 --> 00:20:53,700 pero ya lo comprobamos 408 00:20:53,700 --> 00:20:55,599 vale 409 00:20:55,599 --> 00:20:58,839 vale, pues entonces, ahora ya empezamos 410 00:20:58,839 --> 00:21:00,380 a trabajar, ahora ya 411 00:21:00,380 --> 00:21:02,440 la vista ya está completa, ahora hay que empezar 412 00:21:02,440 --> 00:21:04,359 y actuar, pues venga 413 00:21:04,359 --> 00:21:06,400 respuesta al botón 414 00:21:06,400 --> 00:21:08,460 más, respuesta al botón 415 00:21:08,460 --> 00:21:08,920 más 416 00:21:08,920 --> 00:21:19,740 hemos hecho tres botones 417 00:21:19,740 --> 00:21:34,789 vale, pues como va a funcionar nuestra 418 00:21:34,789 --> 00:21:36,910 calculadora, cuando le 419 00:21:36,910 --> 00:21:38,930 demos a sumar, todavía 420 00:21:38,930 --> 00:21:40,109 no pasa nada 421 00:21:40,109 --> 00:21:41,970 pero que tiene que pasar 422 00:21:41,970 --> 00:21:44,710 pues que el dato que hay ahí 423 00:21:44,710 --> 00:21:46,849 tendremos que leerlo, con lo cual 424 00:21:46,849 --> 00:21:48,710 el controlador automáticamente va a necesitar 425 00:21:48,710 --> 00:21:50,529 acceder a este, para leer el dato 426 00:21:50,529 --> 00:21:52,730 vale, pues entonces primera cosa que le podemos 427 00:21:52,730 --> 00:21:53,970 para el controlador, oye tú 428 00:21:53,970 --> 00:21:56,750 controlador voy a necesitar acceder a este 429 00:21:56,750 --> 00:21:58,609 al text 430 00:21:58,609 --> 00:22:03,140 field, dato 431 00:22:03,140 --> 00:22:11,099 ¿vale? entonces 432 00:22:11,099 --> 00:22:13,299 ¿qué tendremos que hacer cuando demos al botón suma? 433 00:22:13,740 --> 00:22:14,539 pues de dato 434 00:22:14,539 --> 00:22:16,980 leer lo que haya, el numerito que haya 435 00:22:16,980 --> 00:22:19,119 que si 436 00:22:19,119 --> 00:22:21,079 exploramos los métodos suena a que 437 00:22:21,079 --> 00:22:22,299 es getText el que me lo da 438 00:22:22,299 --> 00:22:25,140 pero como me lo dará en string ya sabemos 439 00:22:25,140 --> 00:22:27,119 convertir un string 440 00:22:27,119 --> 00:22:27,680 a entero 441 00:22:27,680 --> 00:22:36,680 así funciona calculador 442 00:22:36,680 --> 00:22:38,799 tú solo tienes una pantalla, entonces 443 00:22:38,799 --> 00:22:40,660 vamos a ir, claro 444 00:22:40,660 --> 00:22:42,940 entonces, ¿qué vamos a hacer 445 00:22:42,940 --> 00:22:44,839 cuando le demos al botón suma? 446 00:22:44,920 --> 00:22:46,960 pues cuando le damos al botón suma, lo único 447 00:22:46,960 --> 00:22:48,619 que podemos hacer en ese momento es 448 00:22:48,619 --> 00:22:50,880 coger ese dato y 449 00:22:50,880 --> 00:22:52,759 guardarlo en algún lado porque va a ser el 450 00:22:52,759 --> 00:22:54,940 primero operando, pero todavía 451 00:22:54,940 --> 00:22:57,019 nada más, es decir, la respuesta al botón 452 00:22:57,019 --> 00:22:58,680 suma será, porque tú haces 453 00:22:58,680 --> 00:23:00,480 3 más 2 454 00:23:00,480 --> 00:23:02,859 igual, entonces 455 00:23:02,859 --> 00:23:04,880 cuando le das al más, lo 456 00:23:04,880 --> 00:23:07,119 único que tienes que hacer es el dato que haya 457 00:23:07,119 --> 00:23:09,000 quedártelo ahí guardado 458 00:23:09,000 --> 00:23:11,000 como primer operando y ya está 459 00:23:11,000 --> 00:23:12,880 todavía no operarás, operarás 460 00:23:12,880 --> 00:23:14,740 cuando le des al igual, entonces 461 00:23:14,740 --> 00:23:16,559 aquí ya nos surge la primera duda es 462 00:23:16,559 --> 00:23:18,680 a ver, este dato que yo cojo aquí 463 00:23:18,680 --> 00:23:21,059 operando 464 00:23:21,059 --> 00:23:21,440 uno 465 00:23:21,440 --> 00:23:24,819 lo tengo que guardar en algún 466 00:23:24,819 --> 00:23:26,980 lado, en algún lado se tiene que quedar ahí guardado 467 00:23:26,980 --> 00:23:28,920 sin perderse, para que cuando 468 00:23:28,920 --> 00:23:30,779 luego nos vayamos al evento 469 00:23:30,779 --> 00:23:31,619 de botón 470 00:23:31,619 --> 00:23:34,539 de botón igual 471 00:23:34,539 --> 00:23:45,210 para que cuando luego nos vayamos al evento 472 00:23:45,210 --> 00:23:46,130 de botón igual 473 00:23:46,130 --> 00:23:50,720 ahora ya 474 00:23:50,720 --> 00:23:52,039 desde botón igual 475 00:23:52,039 --> 00:23:54,220 habrá que hacer una suma con 476 00:23:54,220 --> 00:23:56,400 el operando que hay en ese momento 477 00:23:56,400 --> 00:23:58,759 más este otro que hemos cogido 478 00:23:58,759 --> 00:24:00,740 previamente, luego aquí se nos 479 00:24:00,740 --> 00:24:02,380 presenta ya un primer problema 480 00:24:02,380 --> 00:24:04,460 pequeñito, pero un primer problema de diseño 481 00:24:04,460 --> 00:24:06,900 que es, este dato que he leído 482 00:24:06,900 --> 00:24:07,960 aquí en botón suma 483 00:24:07,960 --> 00:24:10,500 ¿cómo me las apaño para que se quede guardado 484 00:24:10,500 --> 00:24:12,559 en algún sitio y que no se 485 00:24:12,559 --> 00:24:14,619 pierda, porque luego lo tiene que usar 486 00:24:14,619 --> 00:24:16,460 este método botón igual, cuando yo 487 00:24:16,460 --> 00:24:17,980 de a botón igual, como me las apaño 488 00:24:17,980 --> 00:24:20,400 que es la primera opción que nos sale 489 00:24:20,400 --> 00:24:33,220 claro, la solución 490 00:24:33,220 --> 00:24:34,500 natural que nos sale es 491 00:24:34,500 --> 00:24:36,019 variable de la clase 492 00:24:36,019 --> 00:24:38,779 operando uno 493 00:24:38,779 --> 00:24:39,980 entonces 494 00:24:39,980 --> 00:24:42,539 esta es la solución natural, verdad 495 00:24:42,539 --> 00:24:44,160 operando uno 496 00:24:44,160 --> 00:24:48,119 la primera que nos sale 497 00:24:48,119 --> 00:25:06,099 Pero claro, aquí ya estamos empezando a meterle basurilla al controller, estamos empezando a convertir al controller en algo que no es. Operando uno es una característica del objeto, entre comillas, del objeto cálculo, del calculador, del que sea. 498 00:25:06,099 --> 00:25:08,599 ¿Vale? Entonces ya estamos 499 00:25:08,599 --> 00:25:10,200 Dándole al controller 500 00:25:10,200 --> 00:25:11,740 Propiedades 501 00:25:11,740 --> 00:25:14,740 Que no lo caracterizan por diseño 502 00:25:14,740 --> 00:25:16,380 Al controller lo caracterizan 503 00:25:16,380 --> 00:25:18,720 Si los controles 504 00:25:18,720 --> 00:25:20,700 A los que accede la interfaz 505 00:25:20,700 --> 00:25:22,200 Los controles sí, lo que usa 506 00:25:22,200 --> 00:25:24,480 Pero si ya le empezamos a meter basura 507 00:25:24,480 --> 00:25:26,559 Estamos mezclando toda la lógica 508 00:25:26,559 --> 00:25:28,720 De la aplicación, con todas las entidades 509 00:25:28,720 --> 00:25:30,220 Con todo el modelo, con todo 510 00:25:30,220 --> 00:25:32,680 ¿Vale? Pero como aquí son 511 00:25:32,680 --> 00:25:34,599 Dos propiedades, vamos a 512 00:25:34,599 --> 00:25:36,819 ponerlo aquí y luego ya lo sacamos 513 00:25:36,819 --> 00:25:38,700 fuera, es solamente como pautas 514 00:25:38,700 --> 00:25:40,599 de diseño que os doy, vamos a suponer que lo sacamos 515 00:25:40,599 --> 00:25:42,539 aquí, pues la solución 516 00:25:42,539 --> 00:25:44,619 una solución tenemos, que es sacarlo aquí 517 00:25:44,619 --> 00:25:46,559 pero repito, estamos 518 00:25:46,559 --> 00:25:48,460 manchándole a este, porque le estamos 519 00:25:48,460 --> 00:25:50,599 empezando a caracterizar con 520 00:25:50,599 --> 00:25:52,579 cosas que en realidad no le caracterizan, al control 521 00:25:52,579 --> 00:25:54,460 lo caracteriza operando uno, operando uno 522 00:25:54,460 --> 00:25:56,640 será en todo caso una característica de una 523 00:25:56,640 --> 00:25:58,579 entidad que yo debería haber diseñado 524 00:25:58,579 --> 00:26:00,519 previamente, antes de empezar a programar 525 00:26:00,519 --> 00:26:02,640 que es la entidad calculadora 526 00:26:02,640 --> 00:26:04,539 pero bueno, venga 527 00:26:04,539 --> 00:26:06,160 operando uno, ahora el botón igual 528 00:26:06,160 --> 00:26:08,500 el botón igual que tiene que hacer 529 00:26:08,500 --> 00:26:10,740 pues cogerse lo que hay en ese 530 00:26:10,740 --> 00:26:12,400 momento en 531 00:26:12,400 --> 00:26:14,859 el área de texto 532 00:26:14,859 --> 00:26:22,759 vamos a 533 00:26:22,759 --> 00:26:25,000 después de darle a sumar vamos a poner el área de 534 00:26:25,000 --> 00:26:27,240 el área de texto a 535 00:26:27,240 --> 00:26:28,900 cero, vacía 536 00:26:28,900 --> 00:26:31,440 para que el usuario no tenga que borrarlo 537 00:26:31,440 --> 00:26:32,480 para meter el segundo operando 538 00:26:32,480 --> 00:26:35,140 entonces el área de texto como se llama 539 00:26:35,140 --> 00:26:35,539 dato 540 00:26:35,539 --> 00:26:39,099 dato no si tiene un clear, ponerle un 541 00:26:39,099 --> 00:26:40,140 set test a 542 00:26:40,140 --> 00:26:42,220 sí, tiene un clear 543 00:26:42,220 --> 00:26:45,549 vale, y ahora 544 00:26:45,549 --> 00:26:47,589 en botón igual, vamos a coger 545 00:26:47,589 --> 00:26:49,529 ahora ya vamos a fijar 546 00:26:49,529 --> 00:26:50,410 el área de texto 547 00:26:50,410 --> 00:26:53,509 en dato.sectest 548 00:26:54,349 --> 00:26:55,170 que le vamos a poner 549 00:26:55,170 --> 00:27:00,029 el operando 1 más 550 00:27:00,029 --> 00:27:01,890 lo que haya 551 00:27:01,890 --> 00:27:03,769 en ese momento en el área de texto 552 00:27:03,769 --> 00:27:06,210 que será esto otra vez 553 00:27:06,210 --> 00:27:12,750 vale 554 00:27:12,750 --> 00:27:14,410 el operando 1 555 00:27:14,410 --> 00:27:17,509 sumado a lo que haya en el área 556 00:27:17,509 --> 00:27:19,529 de texto y convertido a string 557 00:27:19,529 --> 00:27:21,390 claro, convertirlo a string es tan fácil 558 00:27:21,390 --> 00:27:22,809 como concatenarlo con esto 559 00:27:22,809 --> 00:27:31,529 entonces no haría nada la interfaz 560 00:27:31,529 --> 00:27:33,630 porque no tengo el evento botón menos 561 00:27:33,630 --> 00:27:35,349 ahora tengo que asociar cada 562 00:27:35,349 --> 00:27:37,569 ahora tengo que asociar cada 563 00:27:37,569 --> 00:27:40,049 método al botón 564 00:27:40,049 --> 00:27:40,309 bueno 565 00:27:40,309 --> 00:27:43,410 bueno 566 00:27:43,410 --> 00:27:47,329 el onclick de 567 00:27:47,329 --> 00:27:50,329 no, todavía no está puesto ninguno 568 00:27:50,329 --> 00:27:51,950 los tenemos que poner, vale 569 00:27:51,950 --> 00:27:54,109 los tenemos que asociar, vale 570 00:27:54,109 --> 00:27:55,609 entonces, donde estamos 571 00:27:55,609 --> 00:27:56,869 aquí 572 00:27:56,869 --> 00:28:00,349 entonces, esta va a ser la respuesta a botón 573 00:28:00,349 --> 00:28:02,210 suma, que es coger el dato y 574 00:28:02,210 --> 00:28:04,349 ponerlo aquí, y esta va a ser 575 00:28:04,349 --> 00:28:06,069 la respuesta a botón igual, que es 576 00:28:06,069 --> 00:28:08,470 al dato que teníamos de antes 577 00:28:08,470 --> 00:28:10,750 le sumamos 578 00:28:10,750 --> 00:28:12,690 el dato nuevo que está en la interfaz 579 00:28:12,690 --> 00:28:14,029 y lo ponemos en la 580 00:28:14,029 --> 00:28:15,829 en el área de texto 581 00:28:15,829 --> 00:28:18,269 entonces lo he convertido a string con esto 582 00:28:18,269 --> 00:28:20,609 cuidado lógicamente si ponéis 583 00:28:20,609 --> 00:28:22,809 ese espacio 584 00:28:22,809 --> 00:28:24,869 en medio la suma se perdería 585 00:28:24,869 --> 00:28:26,509 porque esto se va diciendo 586 00:28:26,509 --> 00:28:27,430 de izquierda a derecha 587 00:28:27,430 --> 00:28:29,809 al tener un entero más un entero 588 00:28:29,809 --> 00:28:31,549 esto interpreta suma entera 589 00:28:31,549 --> 00:28:34,450 suma correcta y luego ya lo podemos convertir 590 00:28:34,450 --> 00:28:36,049 a string concatenando con esto 591 00:28:36,049 --> 00:28:38,490 o como string value of o como os dé la gana 592 00:28:38,490 --> 00:28:39,890 vale 593 00:28:39,890 --> 00:28:42,450 bueno pues ahora lo único que nos falta 594 00:28:42,450 --> 00:28:44,349 es decirle a esta 595 00:28:44,349 --> 00:28:46,069 A la interfaz 596 00:28:46,069 --> 00:28:49,190 Que el onAction de más es botón suma 597 00:28:49,190 --> 00:28:50,650 Y el onAction de igual 598 00:28:50,650 --> 00:28:52,910 Es botón igual 599 00:28:52,910 --> 00:28:56,630 De hecho es que no tendríamos ni que hacerlo aquí 600 00:28:56,630 --> 00:28:58,569 Es que nos vamos aquí al fxml 601 00:28:58,569 --> 00:28:59,950 Que a veces que parecemos tontos 602 00:28:59,950 --> 00:29:02,829 Le ponemos el onAction y se acabó 603 00:29:02,829 --> 00:29:12,059 A ver donde tengo el 604 00:29:12,059 --> 00:29:15,420 Botón suma es este primero 605 00:29:15,420 --> 00:29:16,680 Text suma 606 00:29:16,680 --> 00:29:18,420 Y le voy a poner un 607 00:29:18,420 --> 00:29:20,839 onAction 608 00:29:20,839 --> 00:29:23,680 igual 609 00:29:23,680 --> 00:29:25,140 uff, que he hecho 610 00:29:25,140 --> 00:29:27,960 un onAction 611 00:29:27,960 --> 00:29:29,099 igual 612 00:29:29,099 --> 00:29:32,559 almohadilla 613 00:29:32,559 --> 00:29:35,539 botón suma, creo que se llamaba 614 00:29:35,539 --> 00:29:36,000 el método 615 00:29:36,000 --> 00:29:47,740 no he dicho que sea mejor 616 00:29:47,740 --> 00:29:49,799 he dicho que no tenemos por qué tocarlo 617 00:29:49,799 --> 00:29:50,759 porque nos lo genera todo 618 00:29:50,759 --> 00:29:53,740 pero, a ver, lo que tenemos es 619 00:29:53,740 --> 00:29:55,579 también que intentar no volvernos tontos 620 00:29:55,579 --> 00:29:57,880 entonces ya sabemos que ponerle un evento es 621 00:29:57,880 --> 00:29:59,799 añadirle el componente 622 00:29:59,799 --> 00:30:00,960 onAction 623 00:30:00,960 --> 00:30:03,039 ¿verdad? entonces 624 00:30:03,039 --> 00:30:05,420 si miro yo en mi otro vista para 625 00:30:05,420 --> 00:30:07,140 button 626 00:30:07,140 --> 00:30:09,299 onAction 627 00:30:09,299 --> 00:30:10,619 esto mismo ¿no? 628 00:30:12,160 --> 00:30:13,299 onAction saluda 629 00:30:13,299 --> 00:30:15,200 pues ya está, lo pongo a mano y ya está 630 00:30:15,200 --> 00:30:17,059 es que irme al Steam Builder 631 00:30:17,059 --> 00:30:18,240 solamente para eso 632 00:30:18,240 --> 00:30:21,380 espera un momento que lo escriba bien 633 00:30:21,380 --> 00:30:23,019 porque no lo tengo bien escrito 634 00:30:23,019 --> 00:30:25,220 Me falta esta comilla de aquí 635 00:30:25,220 --> 00:30:27,319 Vale 636 00:30:27,319 --> 00:30:29,960 Ahora ya lo tengo 637 00:30:29,960 --> 00:30:30,619 El on action 638 00:30:30,619 --> 00:30:32,759 Botón suma, un segundito 639 00:30:32,759 --> 00:30:34,599 Y voy a ponerle el on action de 640 00:30:34,599 --> 00:30:37,380 Del 641 00:30:37,380 --> 00:30:41,480 Del botón igual 642 00:30:41,480 --> 00:30:43,160 Que es este 643 00:30:43,160 --> 00:30:45,890 Botón igual 644 00:30:45,890 --> 00:30:51,480 Y eso sí 645 00:30:51,480 --> 00:30:54,299 Me falta también el controller 646 00:30:54,299 --> 00:30:56,079 En el fxml el controller 647 00:30:56,079 --> 00:30:58,579 Lo puedo poner en el Steam Builder 648 00:30:58,579 --> 00:31:02,039 O añadirlo yo directamente a mano 649 00:31:02,039 --> 00:31:04,000 Porque tampoco somos tan tontos 650 00:31:04,000 --> 00:31:14,220 No lo sé, ahora voy a mirar 651 00:31:14,220 --> 00:31:16,019 Aquí me falta esto 652 00:31:16,019 --> 00:31:18,000 Me falta eso 653 00:31:18,000 --> 00:31:19,380 Porque el botón 654 00:31:19,380 --> 00:31:20,920 Ah, sí, sí tiene etiqueta de cierre 655 00:31:20,920 --> 00:31:22,980 Entonces eso va ahí 656 00:31:22,980 --> 00:31:25,279 Y entonces aquí también me sobra esta 657 00:31:25,279 --> 00:31:27,980 Vale, porque tiene etiqueta de cierre 658 00:31:27,980 --> 00:31:28,680 El botón, ¿no? 659 00:31:28,680 --> 00:31:29,279 Sí 660 00:31:29,279 --> 00:31:30,960 Y 661 00:31:30,960 --> 00:31:33,579 Que me sobra un 662 00:31:33,579 --> 00:31:35,779 En el button 663 00:31:35,779 --> 00:31:38,740 Ah, este, este, vale 664 00:31:38,740 --> 00:31:41,349 Vale 665 00:31:41,349 --> 00:31:44,609 Pero me falta ponerle el controller 666 00:31:44,609 --> 00:31:46,589 Vale 667 00:31:46,589 --> 00:31:48,009 Que lo puedo poner en el Steam Builder 668 00:31:48,009 --> 00:31:50,509 Pero es que ya hemos comprobado antes que el Steam Builder 669 00:31:50,509 --> 00:31:51,950 Lo único que hace es añadirme esta línea 670 00:31:51,950 --> 00:31:54,609 Ah, bueno, que no, ya se lo puse 671 00:31:54,609 --> 00:31:55,849 Ya se lo puse en la vista 672 00:31:55,849 --> 00:31:57,089 La tengo aquí 673 00:31:57,089 --> 00:32:01,200 Lo tengo aquí, ya se lo puse en la vista 674 00:32:01,200 --> 00:32:28,400 Vale, pues entonces la vista tiene el controller que estoy usando, el onAction del botón suma y el onAction del botón igual y esos están aquí anotados con su fxml, botón suma, botón igual, el initialize que está por ver que funcione si no implementa initializable, pero eso ahora lo comprobamos. 675 00:32:28,400 --> 00:32:30,559 Y yo creo que está todo 676 00:32:30,559 --> 00:32:33,319 ¿Vale? Creo que está todo 677 00:32:33,319 --> 00:32:35,460 Y si no lo está, pues ahora habrá que arreglarlo 678 00:32:35,460 --> 00:32:37,660 Venga 679 00:32:37,660 --> 00:32:39,319 Ahora 680 00:32:39,319 --> 00:32:42,079 Esto no lo ejecutamos 681 00:32:42,079 --> 00:32:44,000 Como aplicación de Java, como bien sabéis 682 00:32:44,000 --> 00:32:45,519 Si no 683 00:32:45,519 --> 00:32:47,559 A quien llamamos es a Maven 684 00:32:47,559 --> 00:32:49,500 Le decimos, oye tú Maven, lánzate 685 00:32:49,500 --> 00:32:51,779 Ya, y Maven te dice 686 00:32:51,779 --> 00:32:52,700 Sí, ya, pero ¿qué hago? 687 00:32:53,039 --> 00:32:54,240 Porque puedo hacer muchas cosas 688 00:32:54,240 --> 00:32:57,500 Pues oye, ejecuta el plugin de JavaFX 689 00:32:57,500 --> 00:32:58,960 Que te he configurado en el POM 690 00:32:58,960 --> 00:33:01,160 Y ese plugin de JavaFX 691 00:33:01,160 --> 00:33:02,720 Que te he configurado en el POM 692 00:33:02,720 --> 00:33:05,500 En particular hace el RUN 693 00:33:05,500 --> 00:33:06,640 Que es ejecutar 694 00:33:06,640 --> 00:33:08,559 Vamos a ver si tenemos suerte 695 00:33:08,559 --> 00:33:14,910 Vale, no tenemos suerte 696 00:33:14,910 --> 00:33:18,269 Ah, porque no he cambiado 697 00:33:18,269 --> 00:33:19,410 En el POM la clase 698 00:33:19,410 --> 00:33:21,329 ¿Vale? Acordaos de esto 699 00:33:21,329 --> 00:33:23,069 La clase del plugin 700 00:33:23,069 --> 00:33:26,210 ¿Vale? La clase del plugin 701 00:33:26,210 --> 00:33:27,549 Se llama calculadora 702 00:33:27,549 --> 00:33:29,009 ¿Cómo la sabía? 703 00:33:29,410 --> 00:33:30,529 Porque me lo ha dicho 704 00:33:30,529 --> 00:33:34,690 No puedo encontrar 705 00:33:34,690 --> 00:33:36,309 App primera ventana 706 00:33:36,309 --> 00:33:38,950 Ver la traza de error es básico 707 00:33:38,950 --> 00:33:40,029 Si no, no tienes de dónde partir 708 00:33:40,029 --> 00:33:42,430 Vale, entonces 709 00:33:42,430 --> 00:33:44,589 Por ahora es ese error, vamos a ver si hay otro 710 00:33:44,589 --> 00:33:45,970 Calculadora 711 00:33:45,970 --> 00:33:47,109 Calculadora 712 00:33:47,109 --> 00:33:50,309 Calculadora, vale 713 00:33:50,309 --> 00:33:52,170 Siguiente intento 714 00:33:52,170 --> 00:33:57,380 Calculadora 715 00:33:57,380 --> 00:34:04,619 Vale, a ver, otro fallo 716 00:34:04,619 --> 00:34:11,920 No puedo encontrar 717 00:34:11,920 --> 00:34:13,780 Ah, es que has dado otra vez 718 00:34:13,780 --> 00:34:14,900 Es que no se llama calculadora 719 00:34:14,900 --> 00:34:17,619 Ah, es que se llama app, jolín, parezco tonta 720 00:34:17,619 --> 00:34:18,340 Vale, vale 721 00:34:18,340 --> 00:34:20,179 Se llama app 722 00:34:20,179 --> 00:34:21,519 Entonces 723 00:34:21,519 --> 00:34:23,900 App 724 00:34:23,900 --> 00:34:40,070 Siguiente intento 725 00:34:40,070 --> 00:34:42,170 Vale, efectivamente no hace falta 726 00:34:42,170 --> 00:34:43,590 Que implemente initialize 727 00:34:43,590 --> 00:34:46,010 ¿Vale? Es que yo recordaba 728 00:34:46,010 --> 00:34:47,710 Que yo nunca lo había implementado 729 00:34:47,710 --> 00:34:49,909 Pero vamos, puede que para otras cosas 730 00:34:49,909 --> 00:34:51,170 Si haga falta, eso ya no lo sé 731 00:34:51,170 --> 00:34:51,949 ¿Vale? 732 00:34:53,289 --> 00:34:54,969 No, que no hace, no, no, no 733 00:34:54,969 --> 00:34:57,010 Que para que JavaFX 734 00:34:57,010 --> 00:34:59,090 Interprete este método 735 00:34:59,090 --> 00:35:01,429 Como el método que tiene que arrancar 736 00:35:01,429 --> 00:35:02,829 Cuando se monta la aplicación 737 00:35:02,829 --> 00:35:05,150 Solo es necesario que se anote con fxml 738 00:35:05,150 --> 00:35:07,190 No hace falta que haga 739 00:35:07,190 --> 00:35:08,769 Aquí un implement de algo 740 00:35:08,769 --> 00:35:11,190 Que era la duda que tenía Jesús 741 00:35:11,190 --> 00:35:12,829 ¿Vale? Entonces 742 00:35:12,829 --> 00:35:15,110 Mi calculadora es esta 743 00:35:15,110 --> 00:35:15,730 Vamos a ver 744 00:35:15,730 --> 00:35:19,010 Uy, teníamos que haberlo fijado en la izquierda 745 00:35:19,010 --> 00:35:20,809 A la derecha, porque la izquierda queda muy feo 746 00:35:20,809 --> 00:35:24,570 Mi código, ¿dónde? 747 00:35:25,150 --> 00:35:25,610 ¿Qué parte? 748 00:35:27,010 --> 00:35:34,929 No, solamente para comprobar 749 00:35:34,929 --> 00:35:36,570 Que este método se ejecuta al arrancar 750 00:35:36,570 --> 00:35:40,980 Que lo habéis anotado, ¿verdad? 751 00:35:41,019 --> 00:35:41,639 No se os ha olvidado 752 00:35:41,639 --> 00:35:45,619 Y no se os ejecuta 753 00:35:45,619 --> 00:35:47,860 Arrancando aplicación 754 00:35:47,860 --> 00:35:48,840 Ahora lo miramos 755 00:35:48,840 --> 00:35:51,179 Voy a ver yo si el código que hemos hecho tiene sentido 756 00:35:51,179 --> 00:35:52,900 236 más 757 00:35:52,900 --> 00:35:54,900 ¿Veis? Me lo deja limpio, que es muy bonito 758 00:35:54,900 --> 00:35:56,599 123 759 00:35:56,599 --> 00:35:58,599 Igual a 159 760 00:35:58,599 --> 00:35:59,980 ¿Vale? Muy bonita 761 00:35:59,980 --> 00:36:02,940 2,59 más 12 762 00:36:02,940 --> 00:36:04,440 Igual a 371 763 00:36:04,440 --> 00:36:05,300 ¿Vale? 764 00:36:06,360 --> 00:36:07,440 Pues muy bien 765 00:36:07,440 --> 00:36:11,739 ¿Os salen cosas raras? 766 00:36:11,860 --> 00:36:13,000 ¿Problemas? ¿Errores? 767 00:36:13,619 --> 00:36:14,659 ¿Cómo que todito? 768 00:36:14,739 --> 00:36:15,320 No puede ser 769 00:36:15,320 --> 00:36:20,079 A ver, vamos a