1 00:00:00,050 --> 00:00:02,169 Pues los que se han atascado con el primero. 2 00:00:03,029 --> 00:00:08,710 ¿Cuál es el proceso mental que tendrían que haber seguido? 3 00:00:08,789 --> 00:00:09,449 El proceso mental. 4 00:00:10,009 --> 00:00:14,210 Primero, está claro, leerse el enunciado y entender lo que hay que hacer. 5 00:00:14,650 --> 00:00:17,170 Una aplicación que recibe como datos, ¿qué? 6 00:00:17,989 --> 00:00:20,390 Una cantidad, un número decimal. 7 00:00:21,710 --> 00:00:22,309 Vale. 8 00:00:23,230 --> 00:00:24,410 ¿Y qué puede hacer? 9 00:00:24,410 --> 00:00:25,410 Dos funcionalidades. 10 00:00:25,410 --> 00:00:35,670 Funcionalidades, creyendo que son dólares, pasarlo a euros y otra segunda funcionalidad, teniendo en cuenta que son euros, pasarlo a dólares. 11 00:00:35,670 --> 00:00:47,090 Luego, un único dato de entrada, dos funcionalidades distintas y un resultado. 12 00:00:48,130 --> 00:00:53,289 Pues entonces, entendiendo lo que tiene que hacer, uno diseña el aspecto de su interfaz. 13 00:00:53,289 --> 00:00:56,149 pues entonces vamos a hacer 14 00:00:56,149 --> 00:00:58,210 un área de texto para meter 15 00:00:58,210 --> 00:01:00,329 la cantidad, un botón 16 00:01:00,329 --> 00:01:01,890 para cada funcionalidad 17 00:01:01,890 --> 00:01:04,150 y una etiqueta para el resultado 18 00:01:04,150 --> 00:01:06,290 por ejemplo, vale, la estructura 19 00:01:06,290 --> 00:01:07,370 más sencilla del mundo 20 00:01:07,370 --> 00:01:10,430 vale, entonces 21 00:01:10,430 --> 00:01:11,329 ese sería 22 00:01:11,329 --> 00:01:13,390 el primer paso 23 00:01:13,390 --> 00:01:15,870 hemos dicho entender lo que tiene que hacer 24 00:01:15,870 --> 00:01:18,269 el segundo, decidir 25 00:01:18,269 --> 00:01:19,230 una interfaz 26 00:01:19,230 --> 00:01:22,250 que permite recoger los datos 27 00:01:22,250 --> 00:01:24,189 que yo he visto que tengo que meter y permite 28 00:01:24,189 --> 00:01:26,349 mostrar los datos, construirla 29 00:01:26,349 --> 00:01:28,150 y luego ya dar 30 00:01:28,150 --> 00:01:29,829 comportamiento a esa interfaz 31 00:01:29,829 --> 00:01:31,829 vale, pues 32 00:01:31,829 --> 00:01:34,209 como ya tenemos la parte de decidir la interfaz 33 00:01:34,209 --> 00:01:36,049 hecha, pues venga 34 00:01:36,049 --> 00:01:37,390 vamos a 35 00:01:37,390 --> 00:01:41,859 vamos a llamarlo 36 00:01:41,859 --> 00:01:44,079 dólares, dólares 37 00:01:44,079 --> 00:01:45,299 euros, por ejemplo 38 00:01:45,299 --> 00:01:47,659 ala, dólares euros 39 00:01:47,659 --> 00:01:52,640 ¿dónde se me ha creado esa clase? 40 00:01:53,319 --> 00:01:54,519 a saber, bueno, da igual 41 00:01:54,519 --> 00:01:57,799 New Class 42 00:01:57,799 --> 00:02:03,579 Dólares, euros 43 00:02:03,579 --> 00:02:04,879 Vale, entonces 44 00:02:04,879 --> 00:02:07,959 Como esto es una aplicación con interfaz gráfica 45 00:02:07,959 --> 00:02:09,759 Tiene que heredar de un frame 46 00:02:09,759 --> 00:02:11,120 Vale 47 00:02:11,120 --> 00:02:13,599 Siguiente paso, hereda de un frame 48 00:02:13,599 --> 00:02:14,400 Muy bien 49 00:02:14,400 --> 00:02:23,020 Hereda de un frame porque es una aplicación interfaz gráfica 50 00:02:23,020 --> 00:02:24,319 Siguiente paso 51 00:02:24,319 --> 00:02:25,419 Me hago el constructor 52 00:02:25,419 --> 00:02:27,659 Me hago el constructor 53 00:02:27,659 --> 00:02:33,680 Y el constructor construye la interfaz 54 00:02:33,680 --> 00:02:37,000 ¿Qué componentes he decidido yo que tenga? 55 00:02:37,500 --> 00:02:38,960 Como ya los he decidido 56 00:02:38,960 --> 00:02:41,000 Un text fill, un botón 57 00:02:41,000 --> 00:02:43,060 Un segundo botón y una etiqueta 58 00:02:43,060 --> 00:02:44,819 Por ejemplo, como ya lo he decidido 59 00:02:44,819 --> 00:02:47,580 Los pongo aquí como propiedades de la clase 60 00:02:47,580 --> 00:02:49,620 Pero porque ya los he decidido antes 61 00:02:49,620 --> 00:02:53,800 Pues este área de texto va a tener el dato 62 00:02:53,800 --> 00:02:56,719 Vale, un botón 63 00:02:56,719 --> 00:03:00,240 Para convertir 64 00:03:00,240 --> 00:03:02,080 dólares 65 00:03:02,080 --> 00:03:04,719 euros, por ejemplo 66 00:03:04,719 --> 00:03:14,189 otro botón 67 00:03:14,189 --> 00:03:15,830 para la otra funcionalidad 68 00:03:15,830 --> 00:03:18,490 vale, uno pone aquí lo que haya decidido 69 00:03:18,490 --> 00:03:32,680 y el resultado 70 00:03:32,680 --> 00:03:34,500 vamos a variar un poco, el resultado 71 00:03:34,500 --> 00:03:36,240 en lugar de ponerlo en una etiqueta 72 00:03:36,240 --> 00:03:38,939 el resultado que aparezca 73 00:03:38,939 --> 00:03:40,800 en el propio text field, es decir 74 00:03:40,800 --> 00:03:43,180 yo pongo 27, le doy al botón 75 00:03:43,180 --> 00:03:44,979 y 27 cambia y se 76 00:03:44,979 --> 00:03:47,340 convierte en lo que corresponda 77 00:03:47,340 --> 00:03:49,919 vale 78 00:03:49,919 --> 00:03:51,199 pues nada 79 00:03:51,199 --> 00:03:53,919 Estos son mis tres componentes 80 00:03:53,919 --> 00:03:56,060 Los importamos 81 00:03:56,060 --> 00:03:59,919 Los podemos inicializar ya aquí si queremos 82 00:03:59,919 --> 00:04:02,199 Y así no tenemos luego que inicializarlos en el constructor 83 00:04:02,199 --> 00:04:03,819 Venga, vamos a inicializarlos ya aquí 84 00:04:03,819 --> 00:04:05,580 Pues un text fill 85 00:04:05,580 --> 00:04:07,680 ¿Qué tamaño quiero que se vea? 86 00:04:07,860 --> 00:04:09,180 En el área de texto 87 00:04:09,180 --> 00:04:10,960 Pues bueno, que se vea 88 00:04:10,960 --> 00:04:15,889 Que se vea de 10 89 00:04:15,889 --> 00:04:17,389 Ala, que sea grandecito 90 00:04:17,389 --> 00:04:19,610 Vale, el botón 91 00:04:19,610 --> 00:04:21,449 Vamos a inicializarlo ya aquí 92 00:04:21,449 --> 00:04:24,050 un nuevo botón 93 00:04:24,050 --> 00:04:26,050 y que texto 94 00:04:26,050 --> 00:04:28,209 quiero que figure, si este es de dólares 95 00:04:28,209 --> 00:04:29,009 a 96 00:04:29,009 --> 00:04:32,029 pues venga, que figure 97 00:04:32,029 --> 00:04:33,089 por ejemplo 98 00:04:33,089 --> 00:04:36,269 aquí 99 00:04:36,269 --> 00:04:38,589 este texto 100 00:04:38,589 --> 00:04:39,970 en el botón 101 00:04:39,970 --> 00:04:44,420 y en el otro botón, vamos a 102 00:04:44,420 --> 00:04:45,560 inicializarlo ya aquí 103 00:04:45,560 --> 00:04:47,839 que texto queremos que figure 104 00:04:47,839 --> 00:04:50,759 bueno, pues es el opuesto 105 00:04:50,759 --> 00:04:58,379 de euros 106 00:04:58,379 --> 00:04:59,620 a dólares 107 00:04:59,620 --> 00:05:02,060 vale, por ejemplo, ala, son los tres componentes 108 00:05:02,060 --> 00:05:03,699 no lo dito más, con esos tres 109 00:05:03,699 --> 00:05:06,079 tengo ya mi aplicación hecha, porque el resultado 110 00:05:06,079 --> 00:05:07,699 se va a poner en el mismo sitio 111 00:05:07,699 --> 00:05:09,759 donde puse la entrada 112 00:05:09,759 --> 00:05:11,319 ya están los tres 113 00:05:11,319 --> 00:05:13,300 ahora ya construyo la interfaz 114 00:05:13,300 --> 00:05:16,199 vale, construir la interfaz 115 00:05:16,199 --> 00:05:17,139 ¿a dónde le pongo 116 00:05:17,139 --> 00:05:19,680 los componentes? hombre, pues al panel por 117 00:05:19,680 --> 00:05:21,680 defecto, a este 118 00:05:21,680 --> 00:05:25,860 que con tanto método hasta que 119 00:05:25,860 --> 00:05:27,759 sale, al panel por 120 00:05:27,759 --> 00:05:28,939 defecto se los voy a poner 121 00:05:28,939 --> 00:05:31,620 pues venga, le vamos a poner 122 00:05:31,620 --> 00:05:32,680 el text fill 123 00:05:32,680 --> 00:05:37,209 ahora le vamos a poner al panel 124 00:05:37,209 --> 00:05:38,350 por defecto 125 00:05:38,350 --> 00:05:41,689 el botón 126 00:05:41,689 --> 00:05:44,110 este también 127 00:05:44,110 --> 00:05:50,339 y ahora le vamos a poner 128 00:05:50,339 --> 00:05:52,379 también al 129 00:05:52,379 --> 00:05:54,500 se me ha olvidado el punto add 130 00:05:54,500 --> 00:05:59,620 punto add 131 00:05:59,620 --> 00:06:02,500 y le vamos a poner al panel 132 00:06:02,500 --> 00:06:03,699 por defecto 133 00:06:03,699 --> 00:06:06,459 el this es opcional, claro 134 00:06:06,459 --> 00:06:08,500 le vamos a poner el otro 135 00:06:08,500 --> 00:06:09,639 botoncito 136 00:06:09,639 --> 00:06:19,449 vale, entonces vamos siguiendo 137 00:06:19,449 --> 00:06:20,990 el proceso ordenadamente en la cabeza 138 00:06:20,990 --> 00:06:22,410 pero tenemos la cabeza ordenada 139 00:06:22,410 --> 00:06:25,290 ahora decimos, uy, si lo añado 140 00:06:25,290 --> 00:06:27,230 al panel sin más, me aparece en uno encima 141 00:06:27,230 --> 00:06:28,250 de otro, no voy a ver nada 142 00:06:28,250 --> 00:06:30,350 no, voy a tener que poner un gestor de ubicación 143 00:06:30,350 --> 00:06:32,629 entonces, o me hago el flow layer todos seguidos 144 00:06:32,629 --> 00:06:35,029 o me investigo, me busco por ahí 145 00:06:35,029 --> 00:06:36,230 que tardo 5 minutos 146 00:06:36,230 --> 00:06:39,189 cómo usar otro gestor de ubicación 147 00:06:39,189 --> 00:06:41,470 cómo usarlo, si esto es lo más fácil 148 00:06:41,470 --> 00:06:43,089 del mundo, lo difícil es programar 149 00:06:43,089 --> 00:06:44,709 lo difícil es lo que va detrás, que es programar 150 00:06:44,709 --> 00:06:46,670 esto, venga 151 00:06:46,670 --> 00:06:48,829 como yo no quiero perder ese tiempo ahora 152 00:06:48,829 --> 00:06:52,709 en preguntarle a chatGPT, configúrame 153 00:06:52,709 --> 00:06:54,750 un gestor de ubicación para que me ponga los componentes 154 00:06:54,750 --> 00:06:56,709 así, toma este, pum, ahí lo pongo, como no quiero 155 00:06:56,709 --> 00:06:57,610 perder el tiempo en eso 156 00:06:57,610 --> 00:07:00,250 pues voy a hacer un 157 00:07:00,250 --> 00:07:02,310 gestor 158 00:07:02,310 --> 00:07:07,800 así, flow layout 159 00:07:07,800 --> 00:07:11,639 y le voy a decir a mi panel 160 00:07:11,639 --> 00:07:15,420 por defecto, que es 161 00:07:15,420 --> 00:07:17,439 este, le voy a decir a mi panel por defecto que 162 00:07:17,439 --> 00:07:19,480 se copie 163 00:07:19,480 --> 00:07:21,759 o que tome como jefe 164 00:07:21,759 --> 00:07:24,920 ala, ya está construida 165 00:07:24,920 --> 00:07:25,600 mi interfaz 166 00:07:25,600 --> 00:07:27,639 mi interfaz ya está construida 167 00:07:27,639 --> 00:07:32,180 lo que pasa es que los botones no tienen funcionamiento 168 00:07:32,180 --> 00:07:34,079 de hecho vamos a ver si nos gusta 169 00:07:34,079 --> 00:07:35,379 como está en un main 170 00:07:35,379 --> 00:07:38,399 el main, para no hacer una clase aparte, solo para el main 171 00:07:38,399 --> 00:07:39,819 es un poco tontería 172 00:07:39,819 --> 00:07:41,079 hacer una clase solo para el main 173 00:07:41,079 --> 00:07:43,319 vamos a meter el propio main aquí 174 00:07:43,319 --> 00:07:45,720 que es lo habitual, voy a hacer el propio main 175 00:07:45,720 --> 00:07:46,439 en esta clase 176 00:07:46,439 --> 00:07:48,120 Que a su vez 177 00:07:48,120 --> 00:07:51,680 Que es JFrame, que también sea la clase principal 178 00:07:51,680 --> 00:07:55,120 Pues vamos a poner aquí el propio main 179 00:07:55,120 --> 00:08:13,959 ¿Vale? 180 00:08:14,000 --> 00:08:16,360 Y aquí puedo hacer mi main tranquilamente 181 00:08:16,360 --> 00:08:17,759 Entonces 182 00:08:17,759 --> 00:08:19,540 Aquí puedo instarciar 183 00:08:19,540 --> 00:08:20,199 Dólares 184 00:08:20,199 --> 00:08:25,720 Euros, esta es mi aplicación 185 00:08:25,720 --> 00:08:29,569 Igual a new 186 00:08:29,569 --> 00:08:30,350 Dólares 187 00:08:30,350 --> 00:08:32,830 Euros 188 00:08:32,830 --> 00:08:35,230 Ahí la construyo 189 00:08:35,230 --> 00:08:37,529 Y para verla 190 00:08:37,529 --> 00:08:39,649 Y darle un tamaño 191 00:08:39,649 --> 00:08:40,929 Pues le vamos a dar 192 00:08:40,929 --> 00:08:43,210 Un tamaño 193 00:08:43,210 --> 00:08:44,409 Pues el que sea 194 00:08:44,409 --> 00:08:51,590 200 por 100 195 00:08:51,590 --> 00:08:52,590 Cualquier chorrada 196 00:08:52,590 --> 00:08:54,350 Y lo vamos a hacer visible 197 00:08:54,350 --> 00:09:05,710 Vale 198 00:09:05,710 --> 00:09:09,230 Entonces el main lo he hecho en la propia clase 199 00:09:09,230 --> 00:09:10,129 Dólares, euros 200 00:09:10,129 --> 00:09:12,669 Por no hacer una clase aparte solo para meter el main 201 00:09:12,669 --> 00:09:13,250 Que tontería 202 00:09:13,250 --> 00:09:15,330 Entonces si ahora ejecutamos esta clase 203 00:09:15,330 --> 00:09:17,110 Que ya es ejecutable 204 00:09:17,110 --> 00:09:20,429 Para ver si el aspecto que tiene nos gusta 205 00:09:20,429 --> 00:09:22,169 Bueno 206 00:09:22,169 --> 00:09:23,669 Un poco pequeñaja 207 00:09:23,669 --> 00:09:26,470 Pero vale 208 00:09:26,470 --> 00:09:27,490 Pues ya está 209 00:09:27,490 --> 00:09:29,230 Me gusta este aspecto, pues sí 210 00:09:29,230 --> 00:09:31,309 Si lo hago un poco más estrecha 211 00:09:31,309 --> 00:09:32,649 Igual saltan los botones abajo 212 00:09:32,649 --> 00:09:33,929 Y queda más bonita 213 00:09:33,929 --> 00:09:36,129 Vamos a hacerla de ancha 214 00:09:36,129 --> 00:09:37,470 150 215 00:09:37,470 --> 00:09:41,769 A ver si 150 nos queda más bonita 216 00:09:41,769 --> 00:09:47,070 pues sí 217 00:09:47,070 --> 00:09:49,110 así me ha quedado más bonita 218 00:09:49,110 --> 00:09:50,330 vale 219 00:09:50,330 --> 00:09:53,730 pero ahora me falta darle 220 00:09:53,730 --> 00:09:56,049 comportamiento a las cosas 221 00:09:56,049 --> 00:09:57,690 aquí 222 00:09:57,690 --> 00:09:59,450 lo siguiente que tenemos que ver es 223 00:09:59,450 --> 00:10:02,049 de estos interfaces 224 00:10:02,049 --> 00:10:03,929 cuáles tienen comportamiento 225 00:10:03,929 --> 00:10:05,730 asociado, este botón 226 00:10:05,730 --> 00:10:07,590 y este botón 227 00:10:07,590 --> 00:10:09,549 vale 228 00:10:09,549 --> 00:10:10,909 entonces en principio 229 00:10:10,909 --> 00:10:12,570 a este 230 00:10:12,570 --> 00:10:14,950 le vamos a hacer una acción listener 231 00:10:14,950 --> 00:10:18,149 y a este otro, AutoActionListener, 232 00:10:18,629 --> 00:10:21,870 porque son dos componentes que tienen comportamiento asociado. 233 00:10:22,970 --> 00:10:25,850 ¿Vale? ¿Qué tipo de evento queremos capturar? 234 00:10:26,009 --> 00:10:27,370 El por defecto, el de hacer clic. 235 00:10:27,870 --> 00:10:29,870 Como queremos capturar el de hacer clic, 236 00:10:30,629 --> 00:10:32,830 la clase que hay que implementar es la ActionListener, 237 00:10:32,889 --> 00:10:34,090 porque queremos capturar el de hacer clic, 238 00:10:34,710 --> 00:10:35,649 que es el por defecto. 239 00:10:36,289 --> 00:10:38,730 Luego, dos ActionListener, uno para esta 240 00:10:38,730 --> 00:10:40,590 y otro para este botón. 241 00:10:41,049 --> 00:10:41,929 Dos ActionListener. 242 00:10:41,929 --> 00:10:54,240 Pues hala, dos clases internas, me hago aquí mis clases internas, class captura de dólares 243 00:10:54,240 --> 00:11:12,100 a euros, implements ActionListener, y ahora, si esto implementa ActionListener, la llave 244 00:11:12,100 --> 00:11:24,809 a ver que se me ha ido ahí. Vale, a ver, esto aquí. Si esto implementa ActionListener 245 00:11:24,809 --> 00:11:31,850 tiene que implementar el método por defecto, que es el ActionPerformed, que es este de 246 00:11:31,850 --> 00:11:37,710 aquí, este. Y ahora, ¿qué tenemos que hacer en este método? Como el evento que 247 00:11:37,710 --> 00:11:43,490 estamos capturando es pasar de dólares a euros, tendremos que coger lo que hay en el 248 00:11:43,490 --> 00:11:44,210 área de texto 249 00:11:44,210 --> 00:11:47,169 dato, vale 250 00:11:47,169 --> 00:11:48,909 pues a ver, en dato 251 00:11:48,909 --> 00:11:51,350 hay una cosa que se llama 252 00:11:51,350 --> 00:11:53,169 es un área de texto 253 00:11:53,169 --> 00:11:55,450 entonces con, cogemos 254 00:11:55,450 --> 00:11:56,809 su contenido con getTest 255 00:11:56,809 --> 00:11:59,230 vale, este 256 00:11:59,230 --> 00:12:00,990 hay que convertirlo a label 257 00:12:00,990 --> 00:12:09,820 vale, ya tenemos 258 00:12:09,820 --> 00:12:13,740 este es el numerito decimal 259 00:12:13,740 --> 00:12:15,740 que hay en este área 260 00:12:15,740 --> 00:12:17,860 de texto, vale, getTest 261 00:12:17,860 --> 00:12:19,740 nos da la cadena que hay 262 00:12:19,740 --> 00:12:21,840 el textfield, la cadena, pero esa cadena 263 00:12:21,840 --> 00:12:23,480 su número decimal lo tenemos que convertir 264 00:12:23,480 --> 00:12:25,399 y ahora, ¿qué tenemos que hacer? 265 00:12:25,519 --> 00:12:27,500 pues multiplicarlo por el factor de conversión 266 00:12:27,500 --> 00:12:29,879 que me lleva de dólares a euros 267 00:12:29,879 --> 00:12:31,940 que será un factor de conversión inferior a 1 268 00:12:31,940 --> 00:12:33,639 el que sea, ¿cuál es? 269 00:12:34,820 --> 00:12:36,240 ¿lo habéis buscado ya y me decís cuál es? 270 00:12:36,259 --> 00:12:37,179 o pongo cualquier cosa 271 00:12:37,179 --> 00:12:39,340 0,8, 0,8 272 00:12:39,340 --> 00:12:41,700 para pasar de dólares a euros hay que multiplicar por 273 00:12:41,700 --> 00:12:43,659 0,93, vale 274 00:12:43,659 --> 00:12:47,679 bueno, me da igual 275 00:12:47,679 --> 00:12:49,940 vale, pues todo esto 276 00:12:49,940 --> 00:12:51,799 todo esto 277 00:12:51,799 --> 00:12:53,899 es lo que hay que poner 278 00:12:53,899 --> 00:12:55,039 todo esto 279 00:12:55,039 --> 00:12:58,120 todo eso de ahí 280 00:12:58,120 --> 00:13:03,149 es lo que hay que poner 281 00:13:03,149 --> 00:13:04,870 en el área de texto 282 00:13:04,870 --> 00:13:07,350 pues venga 283 00:13:07,350 --> 00:13:09,789 pongo dato.secTest 284 00:13:09,789 --> 00:13:17,529 entonces aquí 285 00:13:17,529 --> 00:13:19,230 se trata de que uno vaya averiguando 286 00:13:19,230 --> 00:13:20,490 los métodos que le interesan 287 00:13:20,490 --> 00:13:23,149 entonces textField 288 00:13:23,149 --> 00:13:25,389 igual que tiene un getTest para sacar 289 00:13:25,389 --> 00:13:27,529 el texto, tiene un 290 00:13:27,529 --> 00:13:29,389 secTest para fijar 291 00:13:29,389 --> 00:13:30,450 el dato que tú quieres 292 00:13:30,450 --> 00:13:32,669 que es justo lo que queremos 293 00:13:32,669 --> 00:13:35,350 a este textfield le vamos a fijar 294 00:13:35,350 --> 00:13:36,950 este texto 295 00:13:36,950 --> 00:13:39,409 todo eso 296 00:13:39,409 --> 00:13:40,789 ¿vale? 297 00:13:42,899 --> 00:13:44,600 el compilador que me dice 298 00:13:44,600 --> 00:13:46,960 oye, cuidado, que al textfield 299 00:13:46,960 --> 00:13:47,899 le estás fijando 300 00:13:47,899 --> 00:13:50,159 para que se ponga en él un texto 301 00:13:50,159 --> 00:13:51,820 y le estás pasando luego un decimal 302 00:13:51,820 --> 00:13:54,259 bueno, convirtámoslo a cadena 303 00:13:54,259 --> 00:13:56,720 ese decimal, ¿cómo convertimos a cadena de forma sencilla? 304 00:13:57,960 --> 00:13:59,039 ¿cómo lo habéis hecho? 305 00:14:01,179 --> 00:14:02,960 claro, la forma más cómoda 306 00:14:02,960 --> 00:14:03,879 es esta 307 00:14:03,879 --> 00:14:06,639 ala, ya te he dado lo que querías 308 00:14:06,639 --> 00:14:07,879 ya está 309 00:14:07,879 --> 00:14:10,899 este es el action performance del botón 310 00:14:10,899 --> 00:14:12,379 va a cambiar de dólares a euros 311 00:14:12,379 --> 00:14:14,559 cojo lo que hay en área de texto 312 00:14:14,559 --> 00:14:15,399 gettest 313 00:14:15,399 --> 00:14:17,860 lo paso a dabble 314 00:14:17,860 --> 00:14:20,740 porque me lo da en cadena el gettest 315 00:14:20,740 --> 00:14:23,019 lo multiplico por el factor de conversión 316 00:14:23,019 --> 00:14:25,179 al concatenarlo con esto 317 00:14:25,179 --> 00:14:26,399 se me queda en formato cadena 318 00:14:26,399 --> 00:14:28,639 y ahora ya se lo pongo 319 00:14:28,639 --> 00:14:29,919 se lo pongo 320 00:14:29,919 --> 00:14:31,820 al textfield de nuevo 321 00:14:31,820 --> 00:14:34,700 Pues ya tengo el evento 322 00:14:34,700 --> 00:14:37,019 Para el botón que va de dólares a euros 323 00:14:37,019 --> 00:14:38,279 Que ese botón como se llama 324 00:14:38,279 --> 00:14:39,919 Este, dólares tu euros 325 00:14:39,919 --> 00:14:41,960 Pues tengo que añadírselo 326 00:14:41,960 --> 00:14:44,179 Dólares 327 00:14:44,179 --> 00:14:46,179 Uy 328 00:14:46,179 --> 00:14:48,480 Tu euros 329 00:14:48,480 --> 00:14:49,419 Punto add 330 00:14:49,419 --> 00:14:52,620 Action listener 331 00:14:52,620 --> 00:14:55,879 Esta que hemos hecho 332 00:14:55,879 --> 00:15:10,350 Vale, entonces vamos a ver si esto nos funciona 333 00:15:10,350 --> 00:15:11,769 Pues si esto nos funciona 334 00:15:11,769 --> 00:15:13,929 El otro botón será hacer otro Action Listener 335 00:15:13,929 --> 00:15:15,909 Para él y añadírselo a él 336 00:15:15,909 --> 00:15:19,629 Hemos hecho el de dólares a euros 337 00:15:19,629 --> 00:15:22,409 Vamos a suponer que le damos 45 338 00:15:22,409 --> 00:15:23,990 De dólares a euros hemos hecho este 339 00:15:23,990 --> 00:15:26,649 Pues 100 euros es 41,85 340 00:15:26,649 --> 00:15:29,610 ¿Vale? Me ha cambiado el 341 00:15:29,610 --> 00:15:36,730 Vale, a ver, 100 euros 342 00:15:36,730 --> 00:15:38,870 Perdón, 100 dólares 343 00:15:38,870 --> 00:15:40,070 ¿Cuánto es? 344 00:15:40,970 --> 00:15:42,330 Pues 100 dólares son 345 00:15:42,330 --> 00:15:43,470 93 euros 346 00:15:43,470 --> 00:15:46,309 ¿Vale? Este botón no tiene nada 347 00:15:46,309 --> 00:15:48,409 hecho todavía, no tiene ningún evento, este sí 348 00:15:48,409 --> 00:15:50,090 93 dólares, ¿cuántos son? 349 00:15:50,570 --> 00:15:51,190 pues, uh 350 00:15:51,190 --> 00:15:55,929 esto 351 00:15:55,929 --> 00:16:00,710 86,49 352 00:16:00,710 --> 00:16:03,610 ¿vale? aquí, hombre, para que quedara 353 00:16:03,610 --> 00:16:05,370 bonito, lo ideal sería truncar el 354 00:16:05,370 --> 00:16:07,570 dabble a dos cifras decimales, truncarlo 355 00:16:07,570 --> 00:16:09,450 para que me mostrara sólo esto 356 00:16:09,450 --> 00:16:11,509 esto ya son tareas vuestras 357 00:16:11,509 --> 00:16:13,169 esto ya son 358 00:16:13,169 --> 00:16:15,450 detalles, detalles que estos ya 359 00:16:15,450 --> 00:16:16,529 sí que son recetas 360 00:16:16,529 --> 00:16:19,509 la receta no me interesa a mí perder el tiempo 361 00:16:19,509 --> 00:16:21,070 en ella, esto ya lo podéis hacer vosotros 362 00:16:21,070 --> 00:16:23,210 como buscar, truncar un double 363 00:16:23,210 --> 00:16:24,769 para que solo demuestre dos cifras decimales 364 00:16:24,769 --> 00:16:37,159 si, le he puesto 10 365 00:16:37,159 --> 00:16:38,220 pero, claro 366 00:16:38,220 --> 00:16:43,240 no, no, no, no tiene nada que ver 367 00:16:43,240 --> 00:16:44,960 o sea, 3 es el aspecto 368 00:16:44,960 --> 00:16:47,259 pero luego si el decimal tiene mil cifras decimales 369 00:16:47,259 --> 00:16:48,299 van a estar ocultas 370 00:16:48,299 --> 00:16:50,360 claro, van a estar ocultas 371 00:16:50,360 --> 00:16:52,659 vale, entonces ahora, el tema sería 372 00:16:52,659 --> 00:16:54,100 y para el otro botón 373 00:16:54,100 --> 00:16:56,279 pues otro action listener para él 374 00:16:56,279 --> 00:16:57,960 Bueno, vamos a copiar y pegar este 375 00:16:57,960 --> 00:17:06,400 Otro ActionListener para él 376 00:17:06,400 --> 00:17:08,319 Y este captura euros 377 00:17:08,319 --> 00:17:12,660 Dólares 378 00:17:12,660 --> 00:17:14,519 Y ahora 379 00:17:14,519 --> 00:17:16,759 El código sería el mismo 380 00:17:16,759 --> 00:17:19,059 Pero ahora el factor de conversión 381 00:17:19,059 --> 00:17:21,599 Sería el de euros a dólares 382 00:17:21,599 --> 00:17:23,559 ¿Cuál es el factor de conversión de euros a dólares? 383 00:17:24,119 --> 00:17:24,799 ¿Uno con qué? 384 00:17:26,460 --> 00:17:27,680 1,07 385 00:17:27,680 --> 00:17:29,640 Pues hala 386 00:17:29,640 --> 00:17:30,700 Ya está 387 00:17:30,700 --> 00:17:33,079 Ya tenemos el ActionListener 388 00:17:33,079 --> 00:17:35,400 Que quiere convertir 389 00:17:35,400 --> 00:17:36,720 De dólares a euros 390 00:17:36,720 --> 00:17:38,000 Multiplicando por 1,07 391 00:17:38,000 --> 00:17:40,920 Pues se lo añadimos al otro botón 392 00:17:40,920 --> 00:17:43,079 Entonces será 393 00:17:43,079 --> 00:17:44,440 Esto mismo 394 00:17:44,440 --> 00:17:47,759 Pero al revés 395 00:17:47,759 --> 00:17:49,680 Euros 396 00:17:49,680 --> 00:17:50,059 To 397 00:17:50,059 --> 00:17:54,880 Dólares 398 00:17:54,880 --> 00:17:56,660 Y lo que le añadimos es 399 00:17:56,660 --> 00:17:57,819 New captura 400 00:17:57,819 --> 00:17:58,640 El otro 401 00:17:58,640 --> 00:18:09,440 Vale 402 00:18:09,440 --> 00:18:10,680 Y ahora esto ya 403 00:18:10,680 --> 00:18:13,180 Sí que nos haría las dos cosas 404 00:18:13,180 --> 00:18:20,789 Esto ya sí que nos haría 405 00:18:20,789 --> 00:18:32,400 Ahí, vale 406 00:18:32,400 --> 00:18:34,920 A ver, 100 euros 407 00:18:34,920 --> 00:18:36,099 ¿Cuántos dólares son? 408 00:18:36,220 --> 00:18:37,940 Pues 100 euros son 100,7 409 00:18:37,940 --> 00:18:41,119 Y 100,7 dólares, ¿cuántos euros son? 410 00:18:41,299 --> 00:18:42,400 99,51 411 00:18:42,400 --> 00:18:43,859 No da exacto porque 412 00:18:43,859 --> 00:18:46,759 El factor de conversión no es exacto 413 00:18:46,759 --> 00:18:48,579 99,51 dólares 414 00:18:48,579 --> 00:18:51,000 ¿Cuántos dólares son? 415 00:18:51,299 --> 00:18:51,559 Pues 416 00:18:51,559 --> 00:18:55,180 106,47 417 00:18:55,180 --> 00:18:56,380 vale, bueno 418 00:18:56,380 --> 00:19:14,859 vale, pues de aquí 419 00:19:14,859 --> 00:19:17,539 ¿qué podemos extraer 420 00:19:17,539 --> 00:19:18,819 de este ejercicio? que uno puede 421 00:19:18,819 --> 00:19:21,380 a partir de aquí ampliar y jugar y hacer todo lo que 422 00:19:21,380 --> 00:19:23,599 le dé la gana, la mecánica es la misma 423 00:19:23,599 --> 00:19:25,319 a partir de aquí ya uno puede investigar 424 00:19:25,319 --> 00:19:26,940 y jugar porque ya es todo muy fácil 425 00:19:26,940 --> 00:19:29,019 ¿vale? 426 00:19:29,299 --> 00:19:31,380 pero hay una cosa que sí que podemos 427 00:19:31,380 --> 00:19:32,700 incorporar, que es, jolines, 428 00:19:33,400 --> 00:19:35,680 tengo que hacer una clase interna 429 00:19:35,680 --> 00:19:37,740 para cada componente. 430 00:19:37,819 --> 00:19:38,380 Menudo rollo. 431 00:19:39,079 --> 00:19:40,660 ¿No podría hacer una única clase 432 00:19:40,660 --> 00:19:43,200 y que esa clase decida 433 00:19:43,200 --> 00:19:45,359 qué componente es el que dio 434 00:19:45,359 --> 00:19:47,000 el evento y elija? 435 00:19:48,359 --> 00:19:49,440 Pues sí, sí que podemos. 436 00:19:49,819 --> 00:19:51,359 Porque si yo tengo una interfaz en la que 437 00:19:51,359 --> 00:19:52,599 tengo mil componentes 438 00:19:52,599 --> 00:19:55,299 y quiero que todos sean 439 00:19:55,299 --> 00:19:57,119 escuchados, tendría que hacer mil clases internas. 440 00:19:57,119 --> 00:19:57,660 Es una locura. 441 00:19:58,579 --> 00:19:59,019 ¿Podemos? 442 00:20:01,380 --> 00:20:03,420 resumirlas todas a una, ¿vale? 443 00:20:03,460 --> 00:20:05,220 ya lo vemos mañana, para simplificar