1 00:00:00,050 --> 00:00:19,250 Hablando de tareas de detectives, poniéndonos ya el colmo de pesquisas, esto ya es lo último que a mí se me ocurre para hacer este método hiper-mega-imposible que se rompa. 2 00:00:19,570 --> 00:00:25,489 ¿Se os ocurre alguna otra razón por la que este método podría romper la aplicación? No. 3 00:00:25,489 --> 00:00:27,769 p2 igual a nul imposible 4 00:00:27,769 --> 00:00:29,210 no lo puede romper 5 00:00:29,210 --> 00:00:30,690 p igual a nul no puede 6 00:00:30,690 --> 00:00:33,630 si p no es nul p.setCódigo 7 00:00:33,630 --> 00:00:34,570 no puede romperlo 8 00:00:34,570 --> 00:00:37,049 si p2 no es nul p.setCódigo no puede 9 00:00:37,049 --> 00:00:38,969 y secuenciaCode más más 10 00:00:38,969 --> 00:00:40,689 tampoco puede romperlo, es imposible 11 00:00:40,689 --> 00:00:43,369 conclusión 12 00:00:43,369 --> 00:00:45,310 este método jamás nunca va a hacer 13 00:00:45,310 --> 00:00:46,890 que la aplicación pare ni termine 14 00:00:46,890 --> 00:00:47,530 ¿verdad que no? 15 00:00:47,789 --> 00:00:50,009 que alguien modifique accediendo a 16 00:00:50,009 --> 00:00:51,649 a secuenciaCode 17 00:00:51,649 --> 00:00:54,909 por un número negativo 18 00:00:54,909 --> 00:00:57,729 bueno, pero el put se va a hacer 19 00:00:57,729 --> 00:00:59,649 igualmente, o sea, lo que es 20 00:00:59,649 --> 00:01:01,590 parar la aplicación y romperla porque 21 00:01:01,590 --> 00:01:03,490 haya una excepción, un null pointer excepción 22 00:01:03,490 --> 00:01:04,670 un array indesbono excepción 23 00:01:04,670 --> 00:01:06,930 claro, que funcione mal, sí 24 00:01:06,930 --> 00:01:09,870 que funcione mal, sí, que tenga un mal funcionamiento 25 00:01:09,870 --> 00:01:11,769 claro, pero es que efectivamente 26 00:01:11,769 --> 00:01:14,230 para ya evitar el máximo del mal funcionamiento 27 00:01:14,230 --> 00:01:15,829 tendríamos que 28 00:01:15,829 --> 00:01:17,989 verificar que la inserción 29 00:01:17,989 --> 00:01:20,010 se ha hecho, vale, no está mal visto 30 00:01:20,010 --> 00:01:21,049 efectivamente, alguien 31 00:01:21,049 --> 00:01:24,010 puede haber toqueteado 32 00:01:24,010 --> 00:01:26,209 la secuencia, no, más fácil que eso 33 00:01:26,209 --> 00:01:29,010 pedidos 34 00:01:29,010 --> 00:01:32,129 esto te devuelve 35 00:01:32,129 --> 00:01:34,129 el objeto que ha 36 00:01:34,129 --> 00:01:34,969 insertado, ¿verdad? 37 00:01:35,650 --> 00:01:38,250 entonces, pedido 38 00:01:38,250 --> 00:01:39,510 te devuelve 39 00:01:39,510 --> 00:01:42,530 sí, pero 40 00:01:42,530 --> 00:01:44,650 anulreturn 41 00:01:44,650 --> 00:01:47,189 anulreturn 42 00:01:47,189 --> 00:01:49,090 las demás previas a la sociedad 43 00:01:49,090 --> 00:01:51,129 vale 44 00:01:51,129 --> 00:01:53,730 entonces, quiero detectar 45 00:01:53,730 --> 00:01:55,450 que este ha hecho una inserción real 46 00:01:55,450 --> 00:01:57,650 porque si alguien hubiera tocado el código 47 00:01:57,650 --> 00:01:59,849 y ya existiera, el put no habría 48 00:01:59,849 --> 00:02:01,810 funcionado y la interfaz gráfica 49 00:02:01,810 --> 00:02:03,750 se ha creído que lo ha insertado y no lo ha insertado 50 00:02:03,750 --> 00:02:06,209 a ver, los de atrás 51 00:02:06,209 --> 00:02:09,590 Gerardo, cállate 52 00:02:09,590 --> 00:02:10,750 vale 53 00:02:10,750 --> 00:02:15,750 no, estaba hablando 54 00:02:15,750 --> 00:02:17,389 hace 55 00:02:17,389 --> 00:02:21,629 Gerardo es el que le estoy viendo 56 00:02:21,629 --> 00:02:25,199 bueno, pues 57 00:02:25,199 --> 00:02:27,199 igual que tu compañero 58 00:02:27,199 --> 00:02:29,939 vale, a ver 59 00:02:29,939 --> 00:02:35,740 a ver, averiguadme rápido 60 00:02:35,740 --> 00:02:37,060 listillos 61 00:02:37,060 --> 00:02:40,139 que de qué manera puedo averiguar 62 00:02:40,139 --> 00:02:41,900 con el valor de retorno del put 63 00:02:41,900 --> 00:02:43,719 si se ha hecho una inserción real 64 00:02:43,719 --> 00:02:46,000 o no se ha hecho porque el código ya existía 65 00:02:46,000 --> 00:02:50,180 sí, pero no, pero es que lo he hecho a propósito 66 00:02:50,180 --> 00:02:51,800 para que me saliera la ayuda, ahora lo quito 67 00:02:51,800 --> 00:02:53,659 para que me saliera la ayuda 68 00:02:53,659 --> 00:02:56,960 vale 69 00:02:56,960 --> 00:03:02,539 vale 70 00:03:02,539 --> 00:03:04,740 te devuelve 71 00:03:04,740 --> 00:03:06,599 el valor previo 72 00:03:06,599 --> 00:03:08,740 asociado a la key o null 73 00:03:08,740 --> 00:03:10,500 si no había 74 00:03:10,500 --> 00:03:12,620 si ese objeto no estaba 75 00:03:12,620 --> 00:03:14,659 vale, o sea te devuelve null 76 00:03:14,659 --> 00:03:15,419 si no existe 77 00:03:15,419 --> 00:03:18,819 y si existe, te devuelve el que había 78 00:03:18,819 --> 00:03:19,539 previamente 79 00:03:19,539 --> 00:03:21,819 ¿vale? eso es lo que me dice aquí ¿o no? 80 00:03:25,419 --> 00:03:37,539 Dios santo bendito 81 00:03:37,539 --> 00:03:39,199 del amor 82 00:03:39,199 --> 00:03:42,740 ¿qué? 83 00:03:46,740 --> 00:03:49,039 pero ¿y dónde están tus gafas? 84 00:03:52,039 --> 00:03:53,860 pero tienes que ir 85 00:03:53,860 --> 00:03:57,800 a ver que los informáticos 86 00:03:57,800 --> 00:03:59,400 acabáis todos de gatos perdidos 87 00:03:59,400 --> 00:04:01,319 bueno, así estoy yo, claro 88 00:04:01,319 --> 00:04:02,120 así estoy 89 00:04:02,120 --> 00:04:06,919 yo no veo de lejos 90 00:04:06,919 --> 00:04:08,379 yo no veo de lejos 91 00:04:08,379 --> 00:04:09,419 vale, a ver 92 00:04:09,419 --> 00:04:12,979 el método 93 00:04:12,979 --> 00:04:16,519 silencio 94 00:04:16,519 --> 00:04:17,720 el método put 95 00:04:17,720 --> 00:04:21,480 no, se está sirviendo para recordarlo, no como funciona 96 00:04:21,480 --> 00:04:23,500 put, ya sabéis que 97 00:04:23,500 --> 00:04:25,779 si existe ya un elemento 98 00:04:25,779 --> 00:04:26,600 con esa clave 99 00:04:26,600 --> 00:04:28,860 te lo sustituye 100 00:04:28,860 --> 00:04:30,639 por el nuevo objeto, te lo sustituye 101 00:04:30,639 --> 00:04:32,699 pero te devuelve el antiguo 102 00:04:32,699 --> 00:04:34,860 por si quieres tú hacer algo con el antiguo 103 00:04:34,860 --> 00:04:35,500 te lo devuelve 104 00:04:35,500 --> 00:04:38,860 y si no existía, te devuelve null 105 00:04:38,860 --> 00:04:40,959 ¿vale? te devuelve null 106 00:04:40,959 --> 00:04:43,040 si no hay ningún objeto para esa clave 107 00:04:43,040 --> 00:04:45,040 y te devuelve el valor 108 00:04:45,040 --> 00:04:46,759 anterior asociado a esa clave 109 00:04:46,759 --> 00:04:47,560 si ya existía 110 00:04:47,560 --> 00:04:49,980 sí, el propio método put 111 00:04:49,980 --> 00:04:53,439 bueno, pues por eso he entrado 112 00:04:53,439 --> 00:04:54,959 para ver si podemos usarlo 113 00:04:54,959 --> 00:04:56,300 a través de su valor de retorno 114 00:04:56,300 --> 00:04:57,959 para ver si se hizo una inserción 115 00:04:57,959 --> 00:05:00,360 efectiva o no. Vale, pues ya 116 00:05:00,360 --> 00:05:02,040 lo siento 117 00:05:02,040 --> 00:05:04,040 Pablo, vas a... 118 00:05:04,040 --> 00:05:05,939 Bueno, vamos a hacértelo grande. Vale. 119 00:05:09,480 --> 00:05:10,540 Gracias, hombre. 120 00:05:11,120 --> 00:05:12,279 Es lo más bonito que me han 121 00:05:12,279 --> 00:05:13,019 dicho nunca, ¿eh? 122 00:05:14,399 --> 00:05:15,680 Vale, pues entonces 123 00:05:15,680 --> 00:05:17,600 si 124 00:05:17,600 --> 00:05:19,740 pedidos es 125 00:05:19,740 --> 00:05:22,139 igual a nul, 126 00:05:22,639 --> 00:05:24,040 entonces se hizo la inserción 127 00:05:24,040 --> 00:05:24,600 efectiva. 128 00:05:25,819 --> 00:05:26,259 ¿Vale? 129 00:05:26,300 --> 00:05:28,600 entonces se hizo la inserción efectiva 130 00:05:28,600 --> 00:05:30,720 lo incrementamos 131 00:05:30,720 --> 00:05:32,019 y devolvemos true 132 00:05:32,019 --> 00:05:34,319 y si no es igual a null 133 00:05:34,319 --> 00:05:36,220 pues entonces 134 00:05:36,220 --> 00:05:43,939 para avisar 135 00:05:43,939 --> 00:05:45,720 de que 136 00:05:45,720 --> 00:05:48,639 de que el pedido ya existía 137 00:05:48,639 --> 00:05:50,079 entonces bueno, a ver 138 00:05:50,079 --> 00:05:52,139 a ver que todo esto ha sido 139 00:05:52,139 --> 00:05:54,139 sí, sí, sí, o sea, por tu culpa 140 00:05:54,139 --> 00:05:56,660 que sí, ya sé que no está bien 141 00:05:56,660 --> 00:05:57,620 porque el pedido se va a acabar 142 00:05:57,620 --> 00:06:00,180 vale, pero esto todo ha sido por tu culpa 143 00:06:00,180 --> 00:06:01,079 porque yo estaba 144 00:06:01,079 --> 00:06:04,259 pero yo estaba preguntando otra cosa 145 00:06:04,259 --> 00:06:05,740 yo estaba preguntando 146 00:06:05,740 --> 00:06:08,139 ¿hay alguna razón más por la que esto 147 00:06:08,139 --> 00:06:10,199 podría parar la aplicación, romperla? 148 00:06:10,259 --> 00:06:12,180 no la hay, esto podría hacer un mal 149 00:06:12,180 --> 00:06:14,259 funcionamiento, pero para evitar ese mal funcionamiento 150 00:06:14,259 --> 00:06:16,259 es que se encadenan muchas acciones 151 00:06:16,259 --> 00:06:18,139 ahora que no nos apetece 152 00:06:18,139 --> 00:06:20,120 porque tendríamos que efectivamente deshacer 153 00:06:20,120 --> 00:06:22,120 el put, para que el pedido se quede 154 00:06:22,120 --> 00:06:23,439 avisar de otra manera 155 00:06:23,439 --> 00:06:25,680 porque el falsi se queda muy genérico 156 00:06:25,680 --> 00:06:27,800 entonces esto 157 00:06:27,800 --> 00:06:30,220 que nos ha sugerido, vamos a dejarlo 158 00:06:30,220 --> 00:06:33,300 porque nos desencadena un montón de acciones 159 00:06:33,300 --> 00:06:35,480 no pasa nada, tú darle a control Z 160 00:06:35,480 --> 00:06:39,800 ala, ya está 161 00:06:39,800 --> 00:06:48,209 pero bueno 162 00:06:48,209 --> 00:06:49,930 se te está moviendo el cerebro 163 00:06:49,930 --> 00:06:51,069 que es lo que se tiene que mover 164 00:06:51,069 --> 00:06:52,370 si, supongo que si 165 00:06:52,370 --> 00:06:55,610 si, son muy sanos 166 00:06:55,610 --> 00:07:01,290 si, estáis siguiendo las ideas 167 00:07:01,290 --> 00:07:02,149 de alguna manera 168 00:07:02,149 --> 00:07:03,790 las, vale 169 00:07:03,790 --> 00:07:05,970 bueno pues ya está, este inserpedido 170 00:07:05,970 --> 00:07:07,509 nos hemos detenido un poquito en él 171 00:07:07,509 --> 00:07:09,790 nos hemos detenido un poquito en él 172 00:07:09,790 --> 00:07:12,189 en este inserpedido simplemente pues para ilustrar 173 00:07:12,189 --> 00:07:14,230 que uno a veces 174 00:07:14,230 --> 00:07:16,050 hace un método y se queda tan ancho y luego 175 00:07:16,050 --> 00:07:17,629 ese método que es tan inocente 176 00:07:17,629 --> 00:07:19,709 puede hacer que la aplicación 177 00:07:19,709 --> 00:07:22,250 papapapacasque por un montón de chorradas 178 00:07:22,250 --> 00:07:24,389 entonces no está mal darle un poquito de robustez 179 00:07:24,389 --> 00:07:25,589 y por supuesto 180 00:07:25,589 --> 00:07:28,089 siempre es importante darle un 181 00:07:28,089 --> 00:07:30,250 mecanismo de realimentación al que lo llama 182 00:07:30,250 --> 00:07:32,350 vale, el que lo llama tiene que ir a alguna 183 00:07:32,350 --> 00:07:34,149 realimentación, no puede llamarte 184 00:07:34,149 --> 00:07:36,329 y ser pedido y confiar 185 00:07:36,329 --> 00:07:37,269 en que lo has hecho bien 186 00:07:37,269 --> 00:07:40,050 realimentación boolean o excepción 187 00:07:40,050 --> 00:07:40,449 vale 188 00:07:40,449 --> 00:07:44,209 y aquí la parte de hacerlo robusto 189 00:07:44,209 --> 00:07:46,230 pues se reduce a esto, estas dos cosas 190 00:07:46,230 --> 00:07:48,009 pueden ser null, pues vamos a hacerlo 191 00:07:48,009 --> 00:07:49,750 robusto de tal manera que si es null 192 00:07:49,750 --> 00:07:51,449 oye, falso, no he hecho nada 193 00:07:51,449 --> 00:07:54,170 y si no es null, le pongo 194 00:07:54,170 --> 00:07:56,110 el código al pedido, lo inserto en 195 00:07:56,110 --> 00:07:56,810 los datos 196 00:07:56,810 --> 00:07:59,930 habilito la secuencia y true, vale 197 00:07:59,930 --> 00:08:01,509 y como conclusión, efectivamente 198 00:08:01,509 --> 00:08:04,089 como alguien me esté toqueteando la secuencia 199 00:08:04,089 --> 00:08:06,170 por otros lados, aquí la podemos 200 00:08:06,170 --> 00:08:07,810 haber liado porque este put 201 00:08:07,810 --> 00:08:09,389 habrá sustituido el pedido 202 00:08:09,389 --> 00:08:11,810 esperamos a confiar en que nadie nos toquetea 203 00:08:11,810 --> 00:08:12,389 las secuencias 204 00:08:12,389 --> 00:08:15,810 por lo menos 205 00:08:15,810 --> 00:08:19,410 no, no está en privada 206 00:08:19,410 --> 00:08:21,990 a ver, no, no tiene que tericete 207 00:08:21,990 --> 00:08:22,850 porque es estática 208 00:08:22,850 --> 00:08:25,889 vale, venga, a ver, la pongo 209 00:08:25,889 --> 00:08:27,930 en privada, entonces solo se 210 00:08:27,930 --> 00:08:29,790 puede toquetear desde esta 211 00:08:29,790 --> 00:08:30,290 clase. 212 00:08:32,549 --> 00:08:33,750 Vale, como no he hecho el resto 213 00:08:33,750 --> 00:08:35,669 de la aplicación, puede que sea útil tocarla desde 214 00:08:35,669 --> 00:08:36,830 cualquier otro lado, pero vale. 215 00:08:37,450 --> 00:08:39,409 Tiene sentido que solo la toqueteemos 216 00:08:39,409 --> 00:08:41,789 cuando insertamos. Efectivamente. 217 00:08:42,029 --> 00:08:43,730 Solo cuando insertamos, que es cuando la generamos. 218 00:08:44,169 --> 00:08:45,509 Pues venga, privada, muy bien. 219 00:08:46,350 --> 00:08:47,649 Buen apunte. 220 00:08:48,009 --> 00:08:49,730 Vale. Por lo menos pónmela 221 00:08:49,730 --> 00:08:51,470 en privada. Pues ya te la he puesto en privada. 222 00:08:51,529 --> 00:08:52,789 ¿Ya estás contento? ¿Quieres algo más? 223 00:08:52,789 --> 00:08:53,850 No, no quiero nada más. 224 00:08:56,690 --> 00:08:57,190 Venga. 225 00:08:58,090 --> 00:08:58,850 Ya hemos 226 00:08:58,850 --> 00:09:00,850 hecho el create del 227 00:09:00,850 --> 00:09:01,210 crud. 228 00:09:02,470 --> 00:09:03,929 El create del crud está. 229 00:09:05,309 --> 00:09:06,590 El consultar 230 00:09:06,590 --> 00:09:07,649 del crud. 231 00:09:08,590 --> 00:09:10,929 Vale, pues vamos a consultar un pedido. 232 00:09:11,710 --> 00:09:11,909 Vale. 233 00:09:12,769 --> 00:09:14,389 A ver, aquí de nuevo vamos a pensar. 234 00:09:14,549 --> 00:09:16,049 Todo esto no es que haya una solución, 235 00:09:16,490 --> 00:09:18,570 una forma de hacer lo que sea. Esta es la buena. 236 00:09:19,210 --> 00:09:20,769 No. Vamos a hablar, 237 00:09:21,070 --> 00:09:22,429 vamos a pensar en nuestra aplicación, 238 00:09:22,529 --> 00:09:24,909 lo que me han pedido y vamos a decidir, tomar una decisión. 239 00:09:25,409 --> 00:09:26,950 A ver si así sale la aplicación 240 00:09:26,950 --> 00:09:28,750 que el tío quiere. Si no sale la aplicación que el tío 241 00:09:28,750 --> 00:09:29,509 ¿Quiénes la cambiamos? 242 00:09:30,090 --> 00:09:30,909 Venga, vamos a pensar. 243 00:09:31,529 --> 00:09:34,330 Cuando alguien desde la interfaz consulte el pedido, 244 00:09:35,370 --> 00:09:37,350 ¿cómo nos puede ser interesante que lo consulte? 245 00:09:38,269 --> 00:09:41,690 Pues, hombre, por nombre, porque en los códigos no lo sabe. 246 00:09:42,690 --> 00:09:50,009 A menos que hagamos que por, no, por descripción. 247 00:09:50,730 --> 00:09:51,889 Vale, por descripción. 248 00:09:52,070 --> 00:09:52,149 Sí. 249 00:09:52,149 --> 00:09:53,289 Por descripción es difícil. 250 00:09:53,610 --> 00:09:54,110 Es difícil. 251 00:09:54,110 --> 00:09:56,830 no, no es difícil porque vamos a poner en la 252 00:09:56,830 --> 00:09:59,309 interfaz un desplegable 253 00:09:59,309 --> 00:10:00,570 con todas las descripciones 254 00:10:00,570 --> 00:10:02,129 según tú insertas un pedido 255 00:10:02,129 --> 00:10:04,570 se te añada el desplegable 256 00:10:04,570 --> 00:10:07,009 así ya luego el usuario lo consulta por desplegable 257 00:10:07,009 --> 00:10:08,129 como lo de las películas 258 00:10:08,129 --> 00:10:13,049 porque es que si no efectivamente 259 00:10:13,049 --> 00:10:15,110 una aplicación de consulta o tú consultas 260 00:10:15,110 --> 00:10:16,850 al azar es una locura 261 00:10:16,850 --> 00:10:18,070 yo iría cribando 262 00:10:18,070 --> 00:10:20,490 primero de quién cliente es 263 00:10:20,490 --> 00:10:23,210 claro pero de nuevo 264 00:10:23,210 --> 00:10:25,389 vas con un cliente al azar tendrás que tener un desplegable 265 00:10:25,389 --> 00:10:26,429 con todos tus clientes 266 00:10:26,429 --> 00:10:28,830 pero como aquí no hemos metido cliente 267 00:10:28,830 --> 00:10:29,850 ¿verdad que no Ana? 268 00:10:30,870 --> 00:10:33,289 ¿a que no hemos metido cliente? pues entonces la consulta 269 00:10:33,289 --> 00:10:34,789 del pedido o por código 270 00:10:34,789 --> 00:10:36,549 o por descripción 271 00:10:36,549 --> 00:10:39,330 entonces, hombre lo ideal sería 272 00:10:39,330 --> 00:10:40,409 por código porque 273 00:10:40,409 --> 00:10:42,789 la clave es código 274 00:10:42,789 --> 00:10:45,370 entonces vamos a hacerle a luz, vamos a hacer que la interfaz 275 00:10:45,370 --> 00:10:47,009 tenga un desplegable 276 00:10:47,009 --> 00:10:49,090 con todos los códigos que se van generando y ya está 277 00:10:49,090 --> 00:10:51,110 vamos a hacerlo así 278 00:10:51,110 --> 00:10:53,029 aunque a lo mejor luego no es lo que quiere 279 00:10:53,029 --> 00:10:54,330 el que nos ha pedido la aplicación 280 00:10:54,330 --> 00:10:56,769 efectivamente 281 00:10:56,769 --> 00:10:58,889 muy bien pensado, vale, pues entonces 282 00:10:58,889 --> 00:11:01,029 vamos a hacer un desplegable 283 00:11:01,029 --> 00:11:02,809 en la interfaz que me puede ser 284 00:11:02,809 --> 00:11:05,070 código de descripción, código de descripción, entonces tú consultas 285 00:11:05,070 --> 00:11:07,009 desplegando, si te salían 286 00:11:07,009 --> 00:11:08,970 solo los códigos sería un rollo, pero si te sale el código 287 00:11:08,970 --> 00:11:10,769 de descripción, ah quiero el pedido de 288 00:11:10,769 --> 00:11:13,090 urgente, va, lo marco, vale 289 00:11:13,090 --> 00:11:15,289 luego, a qué conclusión 290 00:11:15,289 --> 00:11:17,090 llegamos, que ahora 291 00:11:17,090 --> 00:11:19,110 este método tiene sentido 292 00:11:19,110 --> 00:11:21,230 que la consulta, el parámetro que le llegue 293 00:11:21,230 --> 00:11:22,850 perdón, este, sea 294 00:11:22,850 --> 00:11:23,850 el entero 295 00:11:23,850 --> 00:11:26,629 porque vamos a poder recoger el entero 296 00:11:26,629 --> 00:11:28,029 del desplegable de la interfaz 297 00:11:28,029 --> 00:11:30,450 del desplegable de la interfaz yo recojo 298 00:11:30,450 --> 00:11:32,309 todo ese string que he puesto con un split 299 00:11:32,309 --> 00:11:33,909 me saco el codiguito entero 300 00:11:33,909 --> 00:11:36,529 y lo consulto 301 00:11:36,529 --> 00:11:38,629 luego tiene ya 302 00:11:38,629 --> 00:11:40,950 mucho sentido que yo este método de consulta 303 00:11:40,950 --> 00:11:42,389 que voy a llamar desde el listener 304 00:11:42,389 --> 00:11:44,909 me devuelva mi objeto 305 00:11:44,909 --> 00:11:45,610 pedido 306 00:11:45,610 --> 00:11:50,590 partiendo 307 00:11:50,590 --> 00:11:52,769 del código y este código 308 00:11:52,769 --> 00:11:54,909 me lo va a mandar el listener que lo habrá cogido 309 00:11:54,909 --> 00:11:55,870 de mi desplegable 310 00:11:55,870 --> 00:12:00,259 pues hombre, esto en un map 311 00:12:00,259 --> 00:12:02,120 es que ya sabemos lo que es 312 00:12:02,120 --> 00:12:04,659 en un map, esto así 313 00:12:04,659 --> 00:12:06,679 hecho así un poquito 314 00:12:06,679 --> 00:12:07,299 a lo loco 315 00:12:07,299 --> 00:12:10,120 pues sería esto 316 00:12:10,120 --> 00:12:18,259 en un map hecho así a lo loco sería esto de aquí 317 00:12:18,259 --> 00:12:21,879 ahora otra cosa es que efectivamente 318 00:12:21,879 --> 00:12:24,059 nos paremos a pensar en si esto es robusto 319 00:12:24,059 --> 00:12:25,559 puede petar por algún lado 320 00:12:25,559 --> 00:12:28,179 o lo de siempre, si pido ese snus va a petar 321 00:12:28,179 --> 00:12:29,600 pero no vamos a arrastrarlo todo el rato 322 00:12:29,600 --> 00:12:31,120 porque es un rollo 323 00:12:31,120 --> 00:12:33,440 aparte no podemos devolver aquí false 324 00:12:33,440 --> 00:12:36,000 podemos devolver 325 00:12:36,000 --> 00:12:37,919 null, si devuelve null es que no he encontrado 326 00:12:37,919 --> 00:12:38,500 el pedido 327 00:12:38,500 --> 00:12:41,679 entonces vamos a recordar cómo funciona este get 328 00:12:41,679 --> 00:12:43,500 este get 329 00:12:43,500 --> 00:12:45,759 si el pedido existe 330 00:12:45,759 --> 00:12:47,240 te lo devuelve, lógicamente 331 00:12:47,240 --> 00:12:49,899 y si el pedido no existe 332 00:12:49,899 --> 00:12:51,460 creo recordar que te devolvería null 333 00:12:51,460 --> 00:12:53,100 supongo, vamos a recordarlo 334 00:12:53,100 --> 00:12:54,919 vamos a recordar el método get 335 00:12:54,919 --> 00:12:58,919 vamos a recordar el método get 336 00:12:58,919 --> 00:12:59,799 como te funciona 337 00:12:59,799 --> 00:13:03,500 el método get 338 00:13:03,500 --> 00:13:05,899 funciona 339 00:13:05,899 --> 00:13:08,720 devuelve el valor para esta clave 340 00:13:08,720 --> 00:13:10,360 o null si no lo contiene 341 00:13:10,360 --> 00:13:11,799 vale, lo que queríamos saber 342 00:13:11,799 --> 00:13:13,519 luego 343 00:13:13,519 --> 00:13:15,019 el método 344 00:13:15,019 --> 00:13:18,039 nos va a devolver null 345 00:13:18,039 --> 00:13:20,419 si no lo encuentra, pues ya está, pues el listener 346 00:13:20,419 --> 00:13:22,620 si ve que hay un null, pues dirá 347 00:13:22,620 --> 00:13:24,019 no existe pedido 348 00:13:24,019 --> 00:13:26,559 pero bueno, es un poco, existirá 349 00:13:26,559 --> 00:13:28,299 porque si lo hemos sacado del desplegable 350 00:13:28,299 --> 00:13:29,480 el desplegable tiene los que hay 351 00:13:29,480 --> 00:13:31,919 vale y no hay nada más 352 00:13:31,919 --> 00:13:34,220 entonces repito puede fallar 353 00:13:34,220 --> 00:13:36,299 y parar la aplicación si pedidos es null 354 00:13:36,299 --> 00:13:37,840 lo evitaríamos 355 00:13:37,840 --> 00:13:40,159 si pedidos es igual a null 356 00:13:40,159 --> 00:13:41,620 entonces retun null 357 00:13:41,620 --> 00:13:44,059 pondríamos si pedidos es igual a null retun null 358 00:13:44,059 --> 00:13:48,929 en este caso no retun 359 00:13:48,929 --> 00:13:50,049 false lógicamente 360 00:13:50,049 --> 00:13:56,539 vale si el array de pedidos 361 00:13:56,539 --> 00:13:58,580 no existe si el hasmat de pedidos no existe 362 00:13:58,580 --> 00:13:59,840 pues devuelveme un pedido null 363 00:13:59,840 --> 00:14:02,159 no lo ha encontrado lo podemos dejar así 364 00:14:02,159 --> 00:14:06,940 no, si el código no existe 365 00:14:06,940 --> 00:14:08,860 también me devuelve null, me puede devolver null 366 00:14:08,860 --> 00:14:10,480 por dos cosas, porque el hash map 367 00:14:10,480 --> 00:14:12,879 no exista y porque el código no 368 00:14:12,879 --> 00:14:14,879 existe, en cuyo caso el get ya me devuelve null 369 00:14:14,879 --> 00:14:18,379 del desplegable, en este caso 370 00:14:18,379 --> 00:14:20,899 va a existir, si he llamado 371 00:14:20,899 --> 00:14:23,200 a getpedido desde el listener, pero si he llamado a getpedido 372 00:14:23,200 --> 00:14:24,879 desde otra parte de la aplicación 373 00:14:24,879 --> 00:14:26,120 pasándole un código que no exista 374 00:14:26,120 --> 00:14:31,730 bueno, es lo mismo que hemos hecho 375 00:14:31,730 --> 00:14:33,350 aquí, vale 376 00:14:33,350 --> 00:14:35,309 aquí lo único es que 377 00:14:35,309 --> 00:14:36,669 este método 378 00:14:36,669 --> 00:14:39,409 me está avisando de la misma manera 379 00:14:39,409 --> 00:14:40,870 de dos situaciones distintas 380 00:14:40,870 --> 00:14:43,470 tanto si el map no existe 381 00:14:43,470 --> 00:14:45,330 como si el map existe 382 00:14:45,330 --> 00:14:46,230 y no está el pedido 383 00:14:46,230 --> 00:14:48,649 de dos situaciones distintas 384 00:14:48,649 --> 00:14:50,990 me está avisando de la misma manera 385 00:14:50,990 --> 00:14:52,090 devolviendo un null 386 00:14:52,090 --> 00:14:53,850 ¿me importa eso? 387 00:14:55,070 --> 00:14:57,389 pues no, no me importa 388 00:14:57,389 --> 00:14:59,009 no me importa 389 00:14:59,009 --> 00:15:00,230 si me... 390 00:15:00,230 --> 00:15:02,750 claro, eso, no funca 391 00:15:02,750 --> 00:15:04,750 no he encontrado el pedido, me da igual que sea 392 00:15:04,750 --> 00:15:06,690 porque la caja no existe o porque no está 393 00:15:06,690 --> 00:15:08,789 en la caja, no entra el pedido 394 00:15:08,789 --> 00:15:10,690 claro, si yo estoy en una situación en la que 395 00:15:10,690 --> 00:15:12,690 tuviera que distinguir, aquí ya sí 396 00:15:12,690 --> 00:15:14,509 que sí o sí tengo que poner la excepción 397 00:15:14,509 --> 00:15:16,750 porque el valor de retorno 398 00:15:16,750 --> 00:15:18,529 nul está usado 399 00:15:18,529 --> 00:15:20,750 para la caja existe pero no está el pedido 400 00:15:20,750 --> 00:15:22,669 con lo cual para la otra 401 00:15:22,669 --> 00:15:24,850 situación, que es la situación la caja 402 00:15:24,850 --> 00:15:25,549 ni existe 403 00:15:25,549 --> 00:15:28,730 tengo que avisar en tu dejo una excepción 404 00:15:28,730 --> 00:15:29,309 ¿verdad? 405 00:15:29,309 --> 00:15:33,529 Sí, estoy hablando muy 406 00:15:33,529 --> 00:15:35,929 poniéndolo muy en general porque no sé quién va a llamar 407 00:15:35,929 --> 00:15:37,929 a esto, si mi aplicación la van a toquetear 408 00:15:37,929 --> 00:15:39,809 ¿Vale? Estoy hablando 409 00:15:39,809 --> 00:15:40,990 en general de procedimientos 410 00:15:40,990 --> 00:15:43,350 ¿Vale? De aspectos muy 411 00:15:43,350 --> 00:15:45,149 generales ¿Vale? 412 00:15:45,970 --> 00:15:47,509 Lo importante es que nos quedemos con eso 413 00:15:47,509 --> 00:15:49,950 que la realimentación que ofrece 414 00:15:49,950 --> 00:15:51,950 el método, la realimentación que ofrece 415 00:15:51,950 --> 00:15:53,950 puede ser, por supuesto 416 00:15:53,950 --> 00:15:55,570 por consola, con un SISO 417 00:15:55,570 --> 00:15:57,730 pero por consola tiene la utilidad que tiene 418 00:15:57,730 --> 00:15:59,490 Si mi aplicación es con interfaz gráfica, ninguna. 419 00:16:00,049 --> 00:16:01,889 Y si no lo es, también poca, porque tiene que haber un tío 420 00:16:01,889 --> 00:16:02,269 ahí mirando. 421 00:16:03,250 --> 00:16:05,549 Desde luego, al código, la realimentación por consola no le 422 00:16:05,549 --> 00:16:06,070 vale para nada. 423 00:16:06,830 --> 00:16:08,350 Vale, luego nos olvidamos de la realimentación. 424 00:16:09,110 --> 00:16:11,809 Las otras dos vías de la alimentación son por el valor 425 00:16:11,809 --> 00:16:13,789 de retorno y porque lance una excepción. 426 00:16:14,690 --> 00:16:16,990 Si yo puedo, a través del valor de retorno, 427 00:16:17,190 --> 00:16:20,029 avisar, dar la realimentación que necesito, maravilloso. 428 00:16:21,110 --> 00:16:24,830 En este caso, en este caso, puedo. 429 00:16:24,830 --> 00:16:25,889 porque ese null 430 00:16:25,889 --> 00:16:28,850 me va a avisar tanto de si la caja 431 00:16:28,850 --> 00:16:30,970 no existe como si existe pero no tiene el código 432 00:16:30,970 --> 00:16:32,889 me vale, pero si yo quiero 433 00:16:32,889 --> 00:16:34,870 realimentar de dos cosas distintas 434 00:16:34,870 --> 00:16:36,870 o incluso de muchas cosas distintas 435 00:16:36,870 --> 00:16:39,070 tengo que empezar a poner excepciones 436 00:16:39,070 --> 00:16:40,830 ¿vale? y que cada excepción 437 00:16:40,830 --> 00:16:42,250 me avise de una cosa distinta 438 00:16:42,250 --> 00:16:44,549 tendré que crear el objeto excepción 439 00:16:44,549 --> 00:16:46,610 y hacer aquí el throw 440 00:16:46,610 --> 00:16:48,929 cuando pase eso, y con excepciones 441 00:16:48,929 --> 00:16:50,710 puedo yo realimentar de mil 442 00:16:50,710 --> 00:16:51,950 situaciones diferentes 443 00:16:51,950 --> 00:16:54,750 con el valor de retorno solo de una 444 00:16:54,750 --> 00:17:02,690 Bueno, si yo pongo aquí un throw 445 00:17:02,690 --> 00:17:04,650 cualquier otra excepción, el que lo 446 00:17:04,650 --> 00:17:06,509 me está usando me dirá, cuidado que este método 447 00:17:06,509 --> 00:17:08,410 te puede lanzar la excepción, hoy llueve 448 00:17:08,410 --> 00:17:10,670 y dirás, vale, pero hoy llueve 449 00:17:10,670 --> 00:17:12,390 no tiene que ver con que no exista el pedido 450 00:17:12,390 --> 00:17:14,690 entonces, hombre, no es una buena manera, pero sí 451 00:17:14,690 --> 00:17:16,710 te estaría avisando de que algo ha pasado 452 00:17:16,710 --> 00:17:18,690 pero de lo que 453 00:17:18,690 --> 00:17:20,369 ha pasado no sabes, entonces 454 00:17:20,369 --> 00:17:22,190 tal ahora tú de capturarla, ¿cómo la capturas? 455 00:17:22,329 --> 00:17:24,130 ¿sacando el paraguas? Pues no 456 00:17:24,130 --> 00:17:26,069 lo que no era la lluvia lo que me importaba 457 00:17:26,069 --> 00:17:27,829 vale 458 00:17:27,829 --> 00:17:32,130 nunca ahorres tiempo en la vida 459 00:17:32,130 --> 00:17:34,329 vale 460 00:17:34,329 --> 00:17:36,089 ya tenemos la consulta por código 461 00:17:36,089 --> 00:17:37,529 actualizar un pedido 462 00:17:37,529 --> 00:17:40,529 actualizar un pedido 463 00:17:40,529 --> 00:17:42,150 sería un método 464 00:17:42,150 --> 00:17:44,069 ahora de nuevo pensamos cuando puede querer 465 00:17:44,069 --> 00:17:46,250 el usuario de mi aplicación al que yo le estoy 466 00:17:46,250 --> 00:17:48,509 vendiendo es actualizar un pedido en que contexto 467 00:17:48,509 --> 00:17:50,130 bueno pues 468 00:17:50,130 --> 00:17:51,430 por ejemplo vamos a 469 00:17:51,430 --> 00:17:55,210 Por ejemplo 470 00:17:55,210 --> 00:17:58,710 Ya, uh, no, pero esa es muy 471 00:17:58,710 --> 00:18:00,970 Sí, añadirte un boli 472 00:18:00,970 --> 00:18:02,130 Vale, entonces podemos hacer 473 00:18:02,130 --> 00:18:04,069 O bien actualizar pedido 474 00:18:04,069 --> 00:18:05,609 O bien, porque haya cambiado la descripción 475 00:18:05,609 --> 00:18:07,009 Pero va, vamos a dejar esa 476 00:18:07,009 --> 00:18:09,950 O bien añadir un producto nuevo, que puede tener más interés 477 00:18:09,950 --> 00:18:10,930 ¿Vale? 478 00:18:13,029 --> 00:18:14,190 O quitar un producto 479 00:18:14,190 --> 00:18:16,250 Ya, pero es que entonces el audaz de producto 480 00:18:16,250 --> 00:18:18,710 Los parámetros que va a recibir 481 00:18:18,710 --> 00:18:20,549 Tenemos que hacer varios 482 00:18:20,549 --> 00:18:24,329 pero le obligas al listener 483 00:18:24,329 --> 00:18:25,970 o al método que sea a pasar la lista 484 00:18:25,970 --> 00:18:28,230 vamos a hacer una versión más sencilla 485 00:18:28,230 --> 00:18:29,309 que no complique la aplicación 486 00:18:29,309 --> 00:18:32,329 si, si, si, yo creo que debería 487 00:18:32,329 --> 00:18:34,710 a ver 488 00:18:34,710 --> 00:18:36,769 los de atrás 489 00:18:36,769 --> 00:18:38,410 lo están siguiendo 490 00:18:38,410 --> 00:18:41,230 vale 491 00:18:41,230 --> 00:18:43,490 pues venga, vamos a pensar 492 00:18:43,490 --> 00:18:46,990 a ver 493 00:18:46,990 --> 00:18:49,430 vamos a pensar 494 00:18:49,430 --> 00:18:51,849 esto es una decisión que tomamos 495 00:18:51,849 --> 00:18:53,750 no es que tenga que ser así, una decisión 496 00:18:53,750 --> 00:18:55,410 acorde con el que nos ha pedido 497 00:18:55,410 --> 00:18:57,410 la aplicación, vamos a sentarnos 498 00:18:57,410 --> 00:18:59,690 a decidir, cuando tú actualices 499 00:18:59,690 --> 00:19:01,769 un pedido, ¿a qué te refieres? 500 00:19:02,369 --> 00:19:03,569 y él nos va a decir, solamente 501 00:19:03,569 --> 00:19:06,029 añadirle un producto, quitarle nunca jamás 502 00:19:06,029 --> 00:19:07,690 porque hombre, vaya pérdida de dinero 503 00:19:07,690 --> 00:19:09,829 ¿vale? entonces ya nos hemos sentado 504 00:19:09,829 --> 00:19:11,609 con él, nos ha dicho, para mí actualizar un 505 00:19:11,609 --> 00:19:13,349 pedido va a ser añadirle un producto 506 00:19:13,349 --> 00:19:15,869 ¿vale? pues como ya nos ha dicho eso 507 00:19:15,869 --> 00:19:18,089 ahora ya hacemos el método, ya tenemos la información 508 00:19:18,089 --> 00:19:20,650 pues venga, el método de actualizar 509 00:19:20,650 --> 00:19:24,200 tiene sentido 510 00:19:24,200 --> 00:19:26,180 que sea, vamos a ponerle 511 00:19:26,180 --> 00:19:27,220 por ahora void, bueno 512 00:19:27,220 --> 00:19:29,019 y luego ya cambiamos 513 00:19:29,019 --> 00:19:31,359 la realimentación a lo que queramos 514 00:19:31,359 --> 00:19:33,519 update product 515 00:19:33,519 --> 00:19:37,660 vale, que pedido 516 00:19:37,660 --> 00:19:39,559 perdón, update pedido 517 00:19:39,559 --> 00:19:40,819 perdón, perdón, perdón 518 00:19:40,819 --> 00:19:43,359 vale, datos que necesita el método 519 00:19:43,359 --> 00:19:45,940 pedido actualizar 520 00:19:45,940 --> 00:19:47,259 su código 521 00:19:47,259 --> 00:19:51,180 el código de pedido actualizar 522 00:19:51,180 --> 00:19:53,160 y el producto nuevo 523 00:19:53,160 --> 00:19:57,700 porque actualizar pedido 524 00:19:57,700 --> 00:19:59,920 hemos quedado que solo es para esto 525 00:19:59,920 --> 00:20:01,960 solo es para eso, para nada más 526 00:20:01,960 --> 00:20:05,519 si no tendríamos que hacer más métodos 527 00:20:05,519 --> 00:20:07,500 o un método con diferentes parámetros y que 528 00:20:07,500 --> 00:20:09,400 él distinga dentro los que sean y los que no 529 00:20:09,400 --> 00:20:10,720 y hacerlo, muchas opciones 530 00:20:10,720 --> 00:20:12,339 que no queremos 531 00:20:12,339 --> 00:20:15,440 vale, bueno, pues entonces que tenemos que hacer 532 00:20:15,440 --> 00:20:17,579 esto ya lo sabréis 533 00:20:17,579 --> 00:20:19,400 hacer, ¿no? sacar el pedido con ese código 534 00:20:19,400 --> 00:20:21,279 al pedido con ese código 535 00:20:21,279 --> 00:20:22,200 añadirle el producto 536 00:20:22,200 --> 00:20:25,259 y ahora ya volver a meter ese 537 00:20:25,259 --> 00:20:27,019 producto en el map 538 00:20:27,019 --> 00:20:29,119 vale, pues vamos a sacar el 539 00:20:29,119 --> 00:20:31,619 vamos a sacar 540 00:20:31,619 --> 00:20:33,140 el pedido con ese código 541 00:20:33,140 --> 00:20:35,920 mi pedido 542 00:20:35,920 --> 00:20:36,839 p es 543 00:20:36,839 --> 00:20:41,230 el pedido con este código 544 00:20:41,230 --> 00:20:44,740 que raro que no me ofrezca 545 00:20:44,740 --> 00:20:45,980 código ahí, bueno 546 00:20:45,980 --> 00:20:53,200 sí, pero lo tiene arriba y luego 547 00:20:53,200 --> 00:20:55,220 encima tiene un entero, que raro que no me lo haya 548 00:20:55,220 --> 00:20:57,200 ofrecido, vale, tengo el pedido 549 00:20:57,200 --> 00:20:59,579 ahora, a su lista 550 00:20:59,579 --> 00:21:01,420 de productos 551 00:21:01,420 --> 00:21:02,980 a esta lista 552 00:21:02,980 --> 00:21:05,440 le vamos a añadir el producto 553 00:21:05,440 --> 00:21:08,869 nuevo, vale 554 00:21:08,869 --> 00:21:15,380 y ahora 555 00:21:15,380 --> 00:21:20,859 necesitaríamos 556 00:21:20,859 --> 00:21:22,240 volver a poner el producto 557 00:21:22,240 --> 00:21:23,759 en el map 558 00:21:23,759 --> 00:21:26,420 esto es necesario 559 00:21:26,420 --> 00:21:34,190 esta sentencia 560 00:21:34,190 --> 00:21:36,029 es necesaria 561 00:21:36,029 --> 00:21:40,500 esta 562 00:21:40,500 --> 00:21:51,039 P es la referencia 563 00:21:51,039 --> 00:21:52,900 no he cambiado la referencia 564 00:21:52,900 --> 00:21:56,460 esto, el map 565 00:21:56,460 --> 00:21:59,500 tiene la clave y el objeto 566 00:21:59,500 --> 00:22:01,380 ¿y un objeto qué es? su referencia 567 00:22:01,380 --> 00:22:05,140 pues yo a través de la referencia he modificado lo que contiene 568 00:22:05,140 --> 00:22:08,160 pero la referencia o lo que es lo mismo el objeto 569 00:22:08,160 --> 00:22:09,700 es el mismo, no ha cambiado 570 00:22:09,700 --> 00:22:12,759 claro, con lo cual esta sentencia 571 00:22:12,759 --> 00:22:13,859 no es necesaria 572 00:22:13,859 --> 00:22:16,700 otra cosa es que yo cambiara 573 00:22:16,700 --> 00:22:18,799 ¿vale? el objeto 574 00:22:18,799 --> 00:22:21,339 y fuera otro objeto con otra referencia 575 00:22:21,339 --> 00:22:22,460 ¿vale? 576 00:22:23,240 --> 00:22:23,740 entonces sí 577 00:22:23,740 --> 00:22:31,380 vale, pues entonces ahora de nuevo 578 00:22:31,380 --> 00:22:34,099 realimentación, este método necesita realimentación 579 00:22:34,099 --> 00:22:35,920 perdón 580 00:22:35,920 --> 00:22:37,980 bueno, a ver 581 00:22:37,980 --> 00:22:40,279 pues si algo falla, podemos avisar con un boolean 582 00:22:40,279 --> 00:22:42,599 lo suyo sería poner el boolean 583 00:22:42,599 --> 00:22:43,880 ¿qué puede fallar? de nuevo 584 00:22:43,880 --> 00:22:44,839 que pedido sea null 585 00:22:44,839 --> 00:22:46,819 o puede fallar 586 00:22:46,819 --> 00:22:48,759 que esto sea null 587 00:22:48,759 --> 00:22:51,359 porque no tenga productos 588 00:22:51,359 --> 00:22:53,079 pero hombre, eso no va a ser null nunca 589 00:22:53,079 --> 00:22:55,779 porque yo aquí ya la inicializo como vacío 590 00:22:55,779 --> 00:22:57,119 entonces 591 00:22:57,119 --> 00:22:59,960 perdón, la inicializo como un array list nuevo 592 00:22:59,960 --> 00:23:01,480 entonces que 593 00:23:01,480 --> 00:23:03,380 esto sea 594 00:23:03,380 --> 00:23:04,680 que pedido sea null 595 00:23:04,680 --> 00:23:07,539 o bueno, podemos arrastrarlo como siempre 596 00:23:07,539 --> 00:23:09,599 y devolver, pero vamos a dejar 597 00:23:09,599 --> 00:23:11,359 venga, para que no parezca 598 00:23:11,359 --> 00:23:12,039 que luego 599 00:23:12,039 --> 00:23:15,559 lo miráis 600 00:23:15,559 --> 00:23:16,559 si es que lo miráis y decís 601 00:23:16,559 --> 00:23:18,660 aquí porque lo pone y aquí porque no 602 00:23:18,660 --> 00:23:20,220 y no os acordáis de lo que hemos dicho 603 00:23:20,220 --> 00:23:22,240 pues entonces venga lo ponemos 604 00:23:22,240 --> 00:23:23,859 y así no entráis en colisión 605 00:23:23,859 --> 00:23:27,599 vale 606 00:23:27,599 --> 00:23:35,079 si la caja está vacía me devuelve 607 00:23:35,079 --> 00:23:37,079 falso porque entonces no habrá podido modificarlo 608 00:23:37,079 --> 00:23:41,180 y si la caja no está vacía 609 00:23:41,180 --> 00:23:44,319 aquí 610 00:23:44,319 --> 00:23:47,079 hay otro fallo 611 00:23:47,079 --> 00:23:47,559 importante 612 00:23:47,559 --> 00:23:50,059 Que el tío me haya dado un código que no existe 613 00:23:50,059 --> 00:23:52,380 Si me ha dado un código que no existe 614 00:23:52,380 --> 00:23:53,640 Esto es null 615 00:23:53,640 --> 00:23:57,000 Y si esto es null, aquí hay un pedazo null pointer exception 616 00:23:57,000 --> 00:23:59,000 Claro, entonces 617 00:23:59,000 --> 00:24:00,119 Si p 618 00:24:00,119 --> 00:24:02,579 Es igual a null 619 00:24:02,579 --> 00:24:04,140 Me voy de aquí 620 00:24:04,140 --> 00:24:06,980 Corriendo, porque si no me sale 621 00:24:06,980 --> 00:24:09,099 Un null pointer exception impresionante 622 00:24:09,099 --> 00:24:11,259 Y si p no es null 623 00:24:11,259 --> 00:24:12,059 Ya lo actualizo 624 00:24:12,059 --> 00:24:15,140 ¿Vale? Entonces este método me va a devolver 625 00:24:15,140 --> 00:24:16,799 False si no ha podido hacer la actualización 626 00:24:16,799 --> 00:24:18,799 por la razón que sea. Porque no hay caja 627 00:24:18,799 --> 00:24:20,700 de pedidos. Porque había caja, pero el pedido 628 00:24:20,700 --> 00:24:22,799 no estaba. Si me devuelve nulo 629 00:24:22,799 --> 00:24:23,680 es que esto no se ha hecho. 630 00:24:24,440 --> 00:24:25,920 Y si no me devuelve nulo es que se ha hecho. 631 00:24:26,880 --> 00:24:28,019 Perdón, true o false. 632 00:24:28,180 --> 00:24:28,579 Perdón, perdón. 633 00:24:30,980 --> 00:24:32,720 ¿Por qué? 634 00:24:32,839 --> 00:24:33,279 ¿Qué he hecho? 635 00:24:33,279 --> 00:24:34,319 No, porque... 636 00:24:34,319 --> 00:24:37,400 Solo uno. 637 00:24:38,140 --> 00:24:39,039 Buf, vais a ver 638 00:24:39,039 --> 00:24:40,839 métodos con 2.000 millones de retunes. 639 00:24:41,940 --> 00:24:43,440 Que no digo que estén bien. 640 00:24:43,640 --> 00:24:45,039 Que no sea una práctica de programación buena. 641 00:24:45,039 --> 00:24:46,980 estos son break, poner break es a mogollón 642 00:24:46,980 --> 00:24:49,480 poner break es a mogollón no es una buena práctica 643 00:24:49,480 --> 00:24:51,559 de programación, es ir saliendo con break 644 00:24:51,559 --> 00:24:53,160 no hay nada más 645 00:24:53,160 --> 00:24:55,740 opuesto a la programación estructurada que los break 646 00:24:55,740 --> 00:24:57,079 porque desestructura 647 00:24:57,079 --> 00:24:59,380 tú puedes salir por cualquier lado, la idea de la programación estructurada 648 00:24:59,380 --> 00:25:01,339 es que tú tengas un camino en el que entras por un lado 649 00:25:01,339 --> 00:25:03,339 y sales por el otro, punto pelota 650 00:25:03,339 --> 00:25:04,460 y aquí estamos saliendo 651 00:25:04,460 --> 00:25:07,359 en absoluto 652 00:25:07,359 --> 00:25:08,500 nos queremos muchísimo 653 00:25:08,500 --> 00:25:09,559 no me peleo nada 654 00:25:09,559 --> 00:25:16,680 bueno pues 655 00:25:16,680 --> 00:25:19,000 en sus exámenes le hacéis caso 656 00:25:19,000 --> 00:25:19,920 ella hace lo mismo 657 00:25:19,920 --> 00:25:22,339 en cualquier caso yo no 658 00:25:22,339 --> 00:25:24,000 contradigo lo que ella dice 659 00:25:24,000 --> 00:25:26,119 lo que ella dice está correcto 660 00:25:26,119 --> 00:25:27,240 la programación estructurada 661 00:25:27,240 --> 00:25:29,640 cuanto menos break y retún tenga mejor 662 00:25:29,640 --> 00:25:32,640 pero luego uno vive y sobrevive 663 00:25:32,640 --> 00:25:36,480 y os vais a encontrar de todo 664 00:25:36,480 --> 00:25:37,799 hacer esto sin retornar 665 00:25:37,799 --> 00:25:39,539 de alguna manera 666 00:25:39,539 --> 00:25:42,400 hombre pues lo natural sería 667 00:25:42,400 --> 00:25:44,200 aquí un boolean 668 00:25:44,200 --> 00:25:45,579 result 669 00:25:45,579 --> 00:25:47,819 igual a lo que fuera 670 00:25:47,819 --> 00:25:48,599 a true 671 00:25:48,599 --> 00:25:52,319 y aquí en lugar de 672 00:25:52,319 --> 00:25:52,980 return 673 00:25:52,980 --> 00:25:54,819 result 674 00:25:54,819 --> 00:25:58,380 result igual false 675 00:25:58,380 --> 00:25:59,799 y aquí abajo lo mismo 676 00:25:59,799 --> 00:26:02,140 result 677 00:26:02,140 --> 00:26:04,079 igual false 678 00:26:04,079 --> 00:26:05,420 y ahora aquí return result 679 00:26:05,420 --> 00:26:06,440 y punto pelota 680 00:26:06,440 --> 00:26:09,400 esta es la forma bonita 681 00:26:09,400 --> 00:26:10,559 ¿vale? 682 00:26:11,220 --> 00:26:13,160 tú tienes un único punto de salida 683 00:26:13,160 --> 00:26:14,559 este es tu punto de salida 684 00:26:14,559 --> 00:26:16,559 ¿pero tienes que poner el otro dentro de un it return? 685 00:26:17,319 --> 00:26:17,680 no 686 00:26:17,680 --> 00:26:18,619 ¿no? 687 00:26:20,279 --> 00:26:20,960 o sea 688 00:26:20,960 --> 00:26:22,880 ¿como que no sales? 689 00:26:24,019 --> 00:26:25,279 yo salgo por return 690 00:26:25,279 --> 00:26:28,299 y puede ocurrir dos cosas, que result sea true 691 00:26:28,299 --> 00:26:29,759 porque todo ha ido bien 692 00:26:29,759 --> 00:26:31,920 o que sea false porque ha ocurrido una de estas dos 693 00:26:31,920 --> 00:26:32,579 me refiero a que si 694 00:26:32,579 --> 00:26:34,759 igual se va a ejecutar 695 00:26:34,759 --> 00:26:36,380 Claro, se va a ejecutar igual, no es como antes. 696 00:26:36,500 --> 00:26:39,400 Ah, vale, vale, vale, que tengo que meter esto en... 697 00:26:39,400 --> 00:26:45,019 Sí, sí, sí, claro, sí, sí, sí, o meterlo en los dos de arriba, sí, sí, sí, sí, sí, claro. 698 00:26:45,859 --> 00:26:51,400 Si result es... 699 00:26:51,400 --> 00:26:55,539 Si result, entonces ya está. 700 00:26:55,920 --> 00:26:57,740 Y ahora el pedido P también, el result. 701 00:26:59,579 --> 00:27:00,440 ¿Qué pedido P? 702 00:27:01,700 --> 00:27:04,220 El de arriba, pedido P, igual pedido después. 703 00:27:04,220 --> 00:27:07,079 Ah, este pedido de aquí 704 00:27:07,079 --> 00:27:08,140 que no lo veía, sí 705 00:27:08,140 --> 00:27:12,519 Vale, conclusión 706 00:27:12,519 --> 00:27:15,039 y como aquí estoy declarando 707 00:27:15,039 --> 00:27:15,599 encima 708 00:27:15,599 --> 00:27:20,980 pues encima tengo que pedir aquí 709 00:27:20,980 --> 00:27:21,980 una llave 710 00:27:21,980 --> 00:27:27,240 porque estoy haciendo aquí la declaración 711 00:27:27,240 --> 00:27:28,339 entonces tengo que 712 00:27:28,339 --> 00:27:30,539 vale, a ver 713 00:27:30,539 --> 00:27:32,480 claro, con lo cual 714 00:27:32,480 --> 00:27:33,380 esto 715 00:27:33,380 --> 00:27:37,359 claro, a ver, tendría que cambiar 716 00:27:37,359 --> 00:27:38,940 el código para que quedara un poco más bonito 717 00:27:38,940 --> 00:27:40,720 porque así ya es 718 00:27:40,720 --> 00:27:43,160 entonces 719 00:27:43,160 --> 00:27:48,990 vale, esto está más estructurado 720 00:27:48,990 --> 00:27:50,630 tendríamos que hacer algún 721 00:27:50,630 --> 00:27:52,390 podríamos hacer algún arreglito con estos 722 00:27:52,390 --> 00:27:53,450 para que no quedaran tantos 723 00:27:53,450 --> 00:27:55,849 habría que hacer 724 00:27:55,849 --> 00:27:58,190 más feo, pero 725 00:27:58,190 --> 00:27:59,809 lo otro, y de hecho 726 00:27:59,809 --> 00:28:01,309 Python 727 00:28:01,309 --> 00:28:04,190 que está orientado a facilitar 728 00:28:04,190 --> 00:28:06,390 la vida y que sea todo muy sencillo 729 00:28:06,390 --> 00:28:08,069 tan sencillo que es que eso 730 00:28:08,069 --> 00:28:10,130 es un desastre de lenguaje 731 00:28:10,130 --> 00:28:12,170 porque ahí ni se declara nada 732 00:28:12,170 --> 00:28:14,309 ni hay tipos de datos, que un tipo de repente 733 00:28:14,309 --> 00:28:16,190 metes otra cosa, él se adapta a lo que sea 734 00:28:16,190 --> 00:28:18,769 todo, todo, o sea es terrorífico 735 00:28:18,769 --> 00:28:20,349 entonces como te deja hacer todo 736 00:28:20,349 --> 00:28:22,250 entonces está muy bien, te deja hacer 737 00:28:22,250 --> 00:28:23,650 todo, él va decidiendo 738 00:28:23,650 --> 00:28:25,990 que burrada has hecho, yo te lo apaño 739 00:28:25,990 --> 00:28:28,369 en fin, es un desastre, para aplicaciones 740 00:28:28,369 --> 00:28:30,650 no es un desastre, para aplicaciones 741 00:28:30,650 --> 00:28:32,589 en realidad empresariales, por eso sobre todo 742 00:28:32,589 --> 00:28:34,710 se hacen con Java, porque al ser un poquito 743 00:28:34,710 --> 00:28:36,630 más rígido, pues es más difícil 744 00:28:36,630 --> 00:28:38,809 que la cagues. Bueno, pues en Python 745 00:28:38,809 --> 00:28:41,130 que ha sido una tendencia 746 00:28:41,130 --> 00:28:42,569 hacia facilitar 747 00:28:42,569 --> 00:28:44,069 en Python, sin embargo 748 00:28:44,069 --> 00:28:46,730 todo se hace con break, prácticamente 749 00:28:46,730 --> 00:28:48,670 o sea, ha vuelto el break a nuestras vidas 750 00:28:48,670 --> 00:28:50,650 porque facilita 751 00:28:50,650 --> 00:28:52,569 un poquito, pero en origen 752 00:28:52,569 --> 00:28:54,410 en origen se desterró cuando 753 00:28:54,410 --> 00:28:56,009 se inició la programación estructurada 754 00:28:56,009 --> 00:28:58,529 pero es cierto que, jolín 755 00:28:58,529 --> 00:28:59,670 Me queda un poco de pereza, ¿no? 756 00:28:59,789 --> 00:29:01,089 Evitar los return y los break. 757 00:29:02,049 --> 00:29:03,849 Así que os vais a encontrar de todo. 758 00:29:04,269 --> 00:29:05,589 Pero lo que os dice Rosa es cierto. 759 00:29:06,109 --> 00:29:08,529 Luego vosotros tenéis que hacer las cosas 760 00:29:08,529 --> 00:29:11,230 como creáis que vais a ganar más dinero. 761 00:29:12,950 --> 00:29:13,349 Vale. 762 00:29:16,670 --> 00:29:17,869 Entonces, yo, de hecho, 763 00:29:18,190 --> 00:29:20,210 no se lo digáis a Rosa, 764 00:29:20,809 --> 00:29:22,170 pero lo voy a dejar como lo tenía 765 00:29:22,170 --> 00:29:24,589 porque es que tantas líneas 766 00:29:24,589 --> 00:29:26,430 me están dando ansiedad. 767 00:29:28,529 --> 00:29:35,690 vale, yo lo voy a dejar así 768 00:29:35,690 --> 00:29:36,609 pero es feo 769 00:29:36,609 --> 00:29:39,470 pero es más fácil de ver 770 00:29:39,470 --> 00:29:40,910 vale 771 00:29:40,910 --> 00:29:43,609 y chat GPT 772 00:29:43,609 --> 00:29:45,910 chat GPT programa así 773 00:29:45,910 --> 00:29:47,650 chat GPT pasa la aplicación 774 00:29:47,650 --> 00:29:48,930 estructurada completamente 775 00:29:48,930 --> 00:29:51,690 chat GPT todo lo que puede hacer con 776 00:29:51,690 --> 00:29:53,710 break y con return lo hace con 777 00:29:53,710 --> 00:29:54,309 break y return 778 00:29:54,309 --> 00:29:56,529 bueno 779 00:29:56,529 --> 00:29:59,250 Vale, pues ya hemos actualizado 780 00:29:59,250 --> 00:30:03,049 Preguntárselo a ella 781 00:30:03,049 --> 00:30:04,170 Qué opinión tiene de mí 782 00:30:04,170 --> 00:30:06,710 Y preguntadme a mí 783 00:30:06,710 --> 00:30:07,809 Qué opinión tengo de ella 784 00:30:07,809 --> 00:30:09,410 La mía de ella es buenísima 785 00:30:09,410 --> 00:30:11,849 Y estoy convencida que la suya de mí también 786 00:30:11,849 --> 00:30:13,210 Venga 787 00:30:13,210 --> 00:30:18,230 Bueno, pues 788 00:30:18,230 --> 00:30:19,890 Nos llevamos estupendamente 789 00:30:19,890 --> 00:30:21,309 Porque es una persona estupenda 790 00:30:21,309 --> 00:30:22,670 Es que realmente no hay nada que 791 00:30:22,670 --> 00:30:26,410 Bueno, venga, seguimos 792 00:30:26,410 --> 00:30:28,250 borrar 793 00:30:28,250 --> 00:30:30,710 además si no fuera así 794 00:30:30,710 --> 00:30:32,390 no lo diría porque estoy grabando 795 00:30:32,390 --> 00:30:33,269 pero 796 00:30:33,269 --> 00:30:36,109 pero es así 797 00:30:36,109 --> 00:30:39,109 venga, terminamos con el borrado 798 00:30:39,109 --> 00:30:42,650 que no, no, no, es completamente en serio 799 00:30:42,650 --> 00:30:45,089 es completamente en serio 800 00:30:45,089 --> 00:30:46,250 borrar 801 00:30:46,250 --> 00:30:48,950 borrar un pedido, borrar un pedido es lo más fácil 802 00:30:48,950 --> 00:30:51,250 o el tío quiere borrar un pedido 803 00:30:51,250 --> 00:30:53,029 pues ya está, seleccionará 804 00:30:53,029 --> 00:30:53,990 en su desplegable 805 00:30:53,990 --> 00:30:56,650 y el que seleccione borrado 806 00:30:56,650 --> 00:30:57,569 luego por código 807 00:30:57,569 --> 00:31:05,269 este sí que es lo más fácil 808 00:31:05,269 --> 00:31:05,809 del mundo 809 00:31:05,809 --> 00:31:08,750 porque me he equivocado 810 00:31:08,750 --> 00:31:13,269 para los errores de los demás 811 00:31:13,269 --> 00:31:14,769 estáis muy despiertos 812 00:31:14,769 --> 00:31:17,150 vale 813 00:31:17,150 --> 00:31:19,089 pues borrar un pedido pues ya está 814 00:31:19,089 --> 00:31:20,069 es que luego nos dice 815 00:31:20,069 --> 00:31:21,809 ¿qué voy a usar en este código? 816 00:31:25,029 --> 00:31:25,710 vale 817 00:31:25,710 --> 00:31:27,769 pues remove 818 00:31:27,769 --> 00:31:28,710 código 819 00:31:28,710 --> 00:31:31,829 y anda 820 00:31:31,829 --> 00:31:33,809 para reutilizar, para utilizar el boolean 821 00:31:33,809 --> 00:31:34,529 este famoso 822 00:31:34,529 --> 00:31:37,549 pues hacemos esto de aquí 823 00:31:37,549 --> 00:31:41,009 ala 824 00:31:41,009 --> 00:31:47,109 ya está 825 00:31:47,109 --> 00:31:50,029 pedidos remove 826 00:31:50,029 --> 00:31:52,309 a ver, puede ocurrir que no existiera 827 00:31:52,309 --> 00:31:53,849 si no existiera el remove 828 00:31:53,849 --> 00:31:56,329 como funciona, que me devuelve remove 829 00:31:56,329 --> 00:31:58,569 si no existe el código, vamos a verlo 830 00:31:58,569 --> 00:32:00,509 remove 831 00:32:00,509 --> 00:32:04,569 devuelve la clave del que ha borrado 832 00:32:04,569 --> 00:32:12,190 devuelve null 833 00:32:12,190 --> 00:32:14,309 si no contenía la clave 834 00:32:14,309 --> 00:32:15,930 vale, pues entonces 835 00:32:15,930 --> 00:32:17,549 le podemos hacer también 836 00:32:17,549 --> 00:32:25,529 if pedidos remove código 837 00:32:25,529 --> 00:32:27,069 es igual a null 838 00:32:27,069 --> 00:32:29,849 es que no lo pudo borrar porque me devolvió null 839 00:32:29,849 --> 00:32:31,190 entonces en ese caso 840 00:32:31,190 --> 00:32:33,069 un tercer return falso 841 00:32:33,069 --> 00:32:35,710 y si llegamos hasta aquí abajo, retontro. 842 00:32:38,900 --> 00:32:40,019 Sería interesante 843 00:32:40,019 --> 00:32:43,500 en cuanto nos vuelva a venir algún chaval 844 00:32:43,500 --> 00:32:45,380 de estos que programa por ahí 845 00:32:45,380 --> 00:32:48,059 que está trabajando en una empresa 846 00:32:48,059 --> 00:32:49,500 programando y haciendo proyectos 847 00:32:49,500 --> 00:32:52,099 preguntarle qué se encuentra él 848 00:32:52,099 --> 00:32:53,740 y qué es lo que suelen hacer. 849 00:32:56,380 --> 00:32:57,660 Vale, venga, pues ya está. 850 00:32:58,480 --> 00:33:01,299 Tenemos todas estas tareas 851 00:33:01,299 --> 00:33:02,940 con estos datos. 852 00:33:04,400 --> 00:33:06,400 Y ahora ya habrá una interfaz 853 00:33:06,400 --> 00:33:08,240 que llame a los 854 00:33:08,240 --> 00:33:10,220 métodos, nos 855 00:33:10,220 --> 00:33:12,400 falta aquí en estos métodos ponerle un modificador 856 00:33:12,400 --> 00:33:13,779 maravilloso o no 857 00:33:13,779 --> 00:33:16,339 no nos falta esto 858 00:33:16,339 --> 00:33:18,160 claro sería 859 00:33:18,160 --> 00:33:20,339 lo suyo ponerle un static a estos métodos 860 00:33:20,339 --> 00:33:22,140 para poder llamarlo luego cómodamente 861 00:33:22,140 --> 00:33:23,079 desde el listener 862 00:33:23,079 --> 00:33:25,400 nos falta aquí unos static 863 00:33:25,400 --> 00:33:27,819 increíbles 864 00:33:27,819 --> 00:33:34,440 delete esta 865 00:33:34,440 --> 00:33:36,480 con su static 866 00:33:36,480 --> 00:33:47,980 Claro, pero a la vez lo estoy ejecutando. 867 00:33:48,759 --> 00:33:49,359 Claro, claro. 868 00:33:50,180 --> 00:33:55,140 Estoy haciendo la sentencia y además estoy recogiendo el valor de retorno para compararlo con el null. 869 00:33:56,240 --> 00:33:56,680 Vale. 870 00:33:58,759 --> 00:34:05,980 Pues, claro, porque está en la única variable con la que trabajan es esta que es estática 871 00:34:05,980 --> 00:34:08,340 y esta que es estática, solo trabajan con esa 872 00:34:08,340 --> 00:34:10,239 entonces, y ahora ya nos podemos 873 00:34:10,239 --> 00:34:12,159 plantear hacer la aplicación que gestiona y usa 874 00:34:12,159 --> 00:34:13,940 estas cosas, que puede ser que nos haga falta 875 00:34:13,940 --> 00:34:15,880 otros métodos útiles, pues los metemos 876 00:34:15,880 --> 00:34:18,079 lo que sea, pero estos yo los ponía como 877 00:34:18,079 --> 00:34:19,940 ejemplo de los métodos que siempre se recogen 878 00:34:19,940 --> 00:34:22,300 en una clase de acceso a datos 879 00:34:22,300 --> 00:34:23,780 que son estos de aquí 880 00:34:23,780 --> 00:34:26,179 a través, bueno 881 00:34:26,179 --> 00:34:27,940 con otra estructura normalmente y otras cosas 882 00:34:27,940 --> 00:34:28,880 pero bueno, la idea es la misma 883 00:34:28,880 --> 00:34:32,619 lo que hay 884 00:34:32,619 --> 00:34:34,059 lo que 885 00:34:34,059 --> 00:34:35,659 sí, lo que hay es 886 00:34:35,659 --> 00:34:37,800 unas herramientas estupendas 887 00:34:37,800 --> 00:34:40,679 unos frameworks, unas clases que si tú configuras 888 00:34:40,679 --> 00:34:43,000 le pones 889 00:34:43,000 --> 00:34:44,079 insert pedido 890 00:34:44,079 --> 00:34:46,659 se adapta a tu base de datos 891 00:34:46,659 --> 00:34:48,659 te genera el código y te hace absolutamente todo 892 00:34:48,659 --> 00:34:49,940 con lo cual tú lo tienes que programar 893 00:34:49,940 --> 00:34:52,519 eso sí, tienes que entender perfectamente 894 00:34:52,519 --> 00:34:54,780 bien cómo funcionan y saber configurarlas 895 00:34:54,780 --> 00:34:57,619 porque si no estás perdido 896 00:34:57,619 --> 00:35:00,380 y chat GPT en ese caso 897 00:35:00,380 --> 00:35:02,440 no es de mucha ayuda, porque ahí sí que dependemos 898 00:35:02,440 --> 00:35:04,280 completamente de las versiones 899 00:35:04,280 --> 00:35:05,360 con las que estemos trabajando 900 00:35:05,360 --> 00:35:06,900 y ahí sí que se vuelve loco 901 00:35:06,900 --> 00:35:08,539 con el tema de las versiones, de las dependencias 902 00:35:08,539 --> 00:35:10,460 de clases, de no sé qué 903 00:35:10,460 --> 00:35:12,360 son muchas cosas 904 00:35:12,360 --> 00:35:18,239 claro, no tiene todas las actualizaciones 905 00:35:18,239 --> 00:35:21,039 y llega un momento 906 00:35:21,039 --> 00:35:22,320 en que ya te dice 907 00:35:22,320 --> 00:35:24,880 mira, deja de preguntarme porque es que no te lo voy a conseguir 908 00:35:24,880 --> 00:35:27,300 alguna vez responde eso 909 00:35:27,300 --> 00:35:30,480 sí, burradas sí 910 00:35:30,480 --> 00:35:32,280 luego te pido perdón 911 00:35:32,280 --> 00:35:33,599 pero incluso hay veces que te dicen 912 00:35:33,599 --> 00:35:34,179 mira 913 00:35:34,179 --> 00:35:39,079 Sí, pero hay veces que reconoce 914 00:35:39,079 --> 00:35:39,940 Que no te va a poder ayudar 915 00:35:39,940 --> 00:35:42,219 Y te dice, mira, realmente es que estoy perdido con esto 916 00:35:42,219 --> 00:35:44,039 Porque le falta información 917 00:35:44,039 --> 00:35:45,659 Claro, normal, le faltan los datos 918 00:35:45,659 --> 00:35:48,059 Con lo cual el año que viene 919 00:35:48,059 --> 00:35:49,460 No vais a poder usarlo 920 00:35:49,460 --> 00:35:51,860 Para todo, solo para algunas cosas 921 00:35:51,860 --> 00:35:55,519 Gemini 922 00:35:55,519 --> 00:35:56,800 Otro, ¿qué me has dicho? 923 00:35:58,900 --> 00:36:01,260 Pues ahora ya 924 00:36:01,260 --> 00:36:04,019 Ahora ya tendríamos que hacer 925 00:36:04,019 --> 00:36:06,019 la vista de esta aplicación que es la interfaz 926 00:36:06,019 --> 00:36:07,760 y ahora ya esto es un rollo porque 927 00:36:07,760 --> 00:36:09,920 habría que decidir, ¿qué componentes 928 00:36:09,920 --> 00:36:11,780 queremos? Entonces, pues 929 00:36:11,780 --> 00:36:13,840 para insertar, pues campos de texto 930 00:36:13,840 --> 00:36:15,960 para descripción y no sé qué, vale 931 00:36:15,960 --> 00:36:17,659 para añadir 932 00:36:17,659 --> 00:36:20,119 producto, ¿tenemos un añadir producto a pedido? 933 00:36:21,179 --> 00:36:21,960 Pues a través 934 00:36:21,960 --> 00:36:23,840 de UDATE pedido, cada vez que 935 00:36:23,840 --> 00:36:25,800 le damos a UDATE pedido, le estamos 936 00:36:25,800 --> 00:36:28,059 añadiendo producto nuevo, entonces nuestra 937 00:36:28,059 --> 00:36:30,159 interfaz, ¿qué va a necesitar? 938 00:36:31,840 --> 00:36:33,920 Sí, las áreas de texto 939 00:36:33,920 --> 00:36:36,340 que hagan falta, un desplegable 940 00:36:36,340 --> 00:36:37,940 para mostrar todos 941 00:36:37,940 --> 00:36:39,900 los códigos según vas haciendo los 942 00:36:39,900 --> 00:36:41,960 insert, pues ahora entonces 943 00:36:41,960 --> 00:36:43,219 ahora ya, este 944 00:36:43,219 --> 00:36:45,760 es vuestro trabajo de arranque ahora mismo 945 00:36:45,760 --> 00:36:47,119 hacer el frame 946 00:36:47,119 --> 00:36:50,079 decidir que componentes 947 00:36:50,079 --> 00:36:51,800 necesitáis para 948 00:36:51,800 --> 00:36:54,119 insertar los datos, mostrar 949 00:36:54,119 --> 00:36:56,119 los datos, recuperarlos 950 00:36:56,840 --> 00:36:58,420 ¿vale? 951 00:36:58,500 --> 00:36:59,880 y actualizarlos que en ese caso 952 00:36:59,880 --> 00:37:01,860 añadir el, entonces 953 00:37:01,860 --> 00:37:04,599 por ejemplo, una forma de organizarlo 954 00:37:04,599 --> 00:37:06,440 en este caso quizá no hace tanta falta 955 00:37:06,440 --> 00:37:08,599 porque no son muchos datos 956 00:37:08,599 --> 00:37:10,579 los que tenemos, pero una forma 957 00:37:10,579 --> 00:37:12,539 de organizarlo, podríamos hacerlo con paneles tabulados 958 00:37:12,539 --> 00:37:14,440 con diferentes paneles, no ponerlo todo 959 00:37:14,440 --> 00:37:16,380 mogollón en un panel, por ejemplo 960 00:37:16,380 --> 00:37:18,239 vamos a hacernos la vista de esta aplicación 961 00:37:18,239 --> 00:37:19,840 pues nos hacemos 962 00:37:19,840 --> 00:37:20,880 un frame 963 00:37:20,880 --> 00:37:34,260 nos hacemos un 964 00:37:34,260 --> 00:37:37,300 yo que estoy haciendo 965 00:37:37,300 --> 00:37:41,599 vale 966 00:37:41,599 --> 00:37:42,480 un frame 967 00:37:42,480 --> 00:37:45,179 app pedidos 968 00:37:45,179 --> 00:37:52,360 vale 969 00:37:52,360 --> 00:37:54,840 pues nuestro frame 970 00:37:54,840 --> 00:37:55,699 que es este 971 00:37:55,699 --> 00:38:03,059 vale, pues podríamos ya ponerle una barra de menús arriba 972 00:38:03,059 --> 00:38:04,519 pero esa la vamos a hacer 973 00:38:04,519 --> 00:38:07,000 cuando hagamos una aplicación 974 00:38:07,000 --> 00:38:08,699 pues cuando hagamos un procesador de texto, por ejemplo 975 00:38:08,699 --> 00:38:10,460 que podamos hacer archivos para cargarlos 976 00:38:10,460 --> 00:38:11,760 para no se que, entonces lo dejamos para ahí 977 00:38:11,760 --> 00:38:12,860 podemos meter 978 00:38:12,860 --> 00:38:16,000 para que tengáis algún componente más 979 00:38:16,000 --> 00:38:17,980 no vamos a perder mucho el tiempo en esto 980 00:38:17,980 --> 00:38:19,980 pues por ejemplo paneles tabulados 981 00:38:19,980 --> 00:38:22,260 yo tengo insertar 982 00:38:22,260 --> 00:38:24,139 modificar, pues poner cada cosa 983 00:38:24,139 --> 00:38:26,059 en un panel distinto y así no tengo que 984 00:38:26,059 --> 00:38:28,000 tener todos los datos a mogollón, que el usuario 985 00:38:28,000 --> 00:38:30,199 igual se vuelve loco. Vale, pues 986 00:38:30,199 --> 00:38:32,360 ¿cómo hacer diferentes paneles 987 00:38:32,360 --> 00:38:34,260 que cada uno tenga asociado a una pestañita 988 00:38:34,260 --> 00:38:35,219 o te mueves uno a otro? 989 00:38:36,920 --> 00:38:37,360 Pues 990 00:38:37,360 --> 00:38:40,300 Sí, hombre 991 00:38:40,300 --> 00:38:41,559 sale un montón de aplicaciones 992 00:38:41,559 --> 00:38:43,260 por ejemplo, aquí 993 00:38:43,260 --> 00:38:45,519 me refiero a esto 994 00:38:45,519 --> 00:38:51,989 por ejemplo, imagínate que hacemos esto de aquí 995 00:38:51,989 --> 00:38:56,170 a esto 996 00:38:56,170 --> 00:38:58,110 tú tienes aquí diferentes 997 00:38:58,110 --> 00:39:00,070 paneles, cada panel se ocupa 998 00:39:00,070 --> 00:39:01,949 de una cosa y esto podría 999 00:39:01,949 --> 00:39:03,889 estar todo metido en lo mismo, pero sería más 1000 00:39:03,889 --> 00:39:06,110 complicado para el usuario, mejor si cada panel 1001 00:39:06,110 --> 00:39:08,130 tiene aquí una pestañita 1002 00:39:08,130 --> 00:39:10,090 distinta y tú vas cambiando donde lo quieras hacer 1003 00:39:10,090 --> 00:39:11,329 pues a esto me refiero 1004 00:39:11,329 --> 00:39:13,949 entonces tendríamos un panel para insertar, otro para 1005 00:39:13,949 --> 00:39:16,090 hacer consultas, otro para hacer, entonces si la aplicación 1006 00:39:16,090 --> 00:39:18,369 va creciendo y se va complicando lo de insertar 1007 00:39:18,369 --> 00:39:19,889 o lo de consultar se va 1008 00:39:19,889 --> 00:39:22,050 complicando porque puedes consultar por varios parámetros 1009 00:39:22,050 --> 00:39:23,889 pues así no vas a añadir 1010 00:39:23,889 --> 00:39:25,730 todo al mismo panel, lo añades a paneles separados 1011 00:39:25,730 --> 00:39:27,269 cada parte, ¿vale? 1012 00:39:27,869 --> 00:39:28,829 Bueno, pues esta 1013 00:39:28,829 --> 00:39:30,670 chorrada de los paneles. 1014 00:39:34,809 --> 00:39:37,269 Pues bueno, primero a nuestro panel gordote 1015 00:39:37,269 --> 00:39:38,570 le ponemos el 1016 00:39:38,570 --> 00:39:41,349 absoluto, que no se nos olvida. 1017 00:39:42,570 --> 00:39:43,050 Y ahora, 1018 00:39:43,889 --> 00:39:45,230 tiene que haber 1019 00:39:45,230 --> 00:39:46,869 un superpanel 1020 00:39:46,869 --> 00:39:49,050 que es el que luego acoge 1021 00:39:49,050 --> 00:39:50,670 los paneles pequeñitos. 1022 00:39:50,769 --> 00:39:52,789 Y ese superpanel es el 1023 00:39:52,789 --> 00:39:54,309 JTABETPAN, es ese de ahí. 1024 00:39:55,630 --> 00:39:56,510 Pues venga, 1025 00:39:57,230 --> 00:40:00,699 J-Tablet panel. 1026 00:40:04,099 --> 00:40:07,340 Lo hacéis, pues, lo adaptáis al tamaño que queráis. 1027 00:40:08,059 --> 00:40:09,559 El panel grandote. 1028 00:40:10,320 --> 00:40:11,659 J-Tablet panel. 1029 00:40:11,880 --> 00:40:12,199 Es el. 1030 00:40:12,960 --> 00:40:14,000 En containers. 1031 00:40:14,139 --> 00:40:15,840 Está en containers, no en componentes. 1032 00:40:16,480 --> 00:40:17,679 En contenedores está. 1033 00:40:18,039 --> 00:40:18,260 ¿Vale? 1034 00:40:20,260 --> 00:40:22,000 Sí te sale en containers. 1035 00:40:22,440 --> 00:40:24,179 En containers está el cuarto. 1036 00:40:27,719 --> 00:40:28,280 Bueno. 1037 00:40:28,280 --> 00:40:30,300 No. Lo hacéis grande 1038 00:40:30,300 --> 00:40:30,940 que sabéis. 1039 00:40:31,800 --> 00:40:32,539 No tengo ni idea. 1040 00:40:34,900 --> 00:40:35,900 Pues tira de ahí. 1041 00:40:37,739 --> 00:40:38,219 Vale. 1042 00:40:38,539 --> 00:40:40,280 Y ahora ya, este todavía no es 1043 00:40:40,280 --> 00:40:42,199 un panel para coger componentes. Ahora a este 1044 00:40:42,199 --> 00:40:43,800 ya le ponemos tantos paneles como queramos. 1045 00:40:44,460 --> 00:40:46,179 Pues ahora ya vamos arrastrando tantos paneles 1046 00:40:46,179 --> 00:40:48,340 como queramos. Por ejemplo, cogemos un Jpanel. 1047 00:40:48,440 --> 00:40:49,960 Un Jpanel es el panel básico. 1048 00:40:50,780 --> 00:40:52,139 Lo cogemos y lo 1049 00:40:52,139 --> 00:40:54,079 arrastramos ahí hasta donde se nos pone 1050 00:40:54,079 --> 00:40:55,900 la rayita roja gorda. 1051 00:40:57,139 --> 00:40:57,619 ¿Vale? 1052 00:40:58,280 --> 00:41:00,340 Y ya nos ha aparecido un nuevo panel. 1053 00:41:01,280 --> 00:41:04,099 Claro, veis, tiene que aparecer debajo de este. 1054 00:41:05,880 --> 00:41:09,260 Aquí lo natural sería que le cambiéis, lógicamente, 1055 00:41:09,360 --> 00:41:11,260 el nombre de la pestaña, que queda muy fea. 1056 00:41:12,280 --> 00:41:14,139 Pues, os vais a propiedades del panel. 1057 00:41:15,260 --> 00:41:17,719 Le podríamos cambiar el nombre de la variable para que fuera 1058 00:41:17,719 --> 00:41:18,260 más cómodo. 1059 00:41:18,340 --> 00:41:19,940 Panel insertar, por ejemplo. 1060 00:41:20,880 --> 00:41:23,099 Y ahora, abajo en propiedades, pues, 1061 00:41:23,099 --> 00:41:27,639 el valor de la pestañita en tab properties. 1062 00:41:28,280 --> 00:41:34,380 Pues la pestañita en lugar de new tab, pues insertar, por ejemplo. 1063 00:41:37,449 --> 00:41:37,690 ¡Hala! 1064 00:41:39,869 --> 00:41:42,710 Despliega tab en properties del panel. 1065 00:41:46,590 --> 00:41:47,650 Y ya está. 1066 00:41:47,789 --> 00:41:49,670 Y ahora, otro panel más. 1067 00:41:49,809 --> 00:41:51,550 Lo arrastramos al panel gordote. 1068 00:41:51,710 --> 00:41:53,650 Tenemos que tener seleccionado al gordote. 1069 00:41:53,969 --> 00:41:56,170 Lo arrastramos al gordote. 1070 00:41:57,389 --> 00:41:57,989 ¡Hala! 1071 00:41:57,989 --> 00:42:00,409 Hasta que nos aparezca la raya del gordote 1072 00:42:00,409 --> 00:42:02,909 Ya tenemos otro 1073 00:42:02,909 --> 00:42:08,710 Panel 1074 00:42:08,710 --> 00:42:13,449 Borrar 1075 00:42:13,449 --> 00:42:23,099 Vale, le cambiamos la pestaña 1076 00:42:23,099 --> 00:42:32,679 Eliminar 1077 00:42:32,679 --> 00:42:33,139 Vale 1078 00:42:33,139 --> 00:42:36,019 Las podéis cambiar el orden 1079 00:42:36,019 --> 00:42:38,619 Las movéis si queréis que aparezca en otro orden 1080 00:42:38,619 --> 00:42:44,369 ponemos el de 1081 00:42:44,369 --> 00:42:46,449 modificar 1082 00:42:46,449 --> 00:42:48,150 espérate, este no me lo ha puesto bien 1083 00:42:48,150 --> 00:42:50,349 jPanel 1084 00:42:50,349 --> 00:42:51,750 ay, joder 1085 00:42:51,750 --> 00:42:54,650 si no tenéis seleccionado el 1086 00:42:54,650 --> 00:42:56,789 panelado, no sé 1087 00:42:56,789 --> 00:42:59,929 joder, que no quiero esto 1088 00:42:59,929 --> 00:43:01,750 vale, a ver 1089 00:43:01,750 --> 00:43:02,750 ahí 1090 00:43:02,750 --> 00:43:03,750 arriba 1091 00:43:03,750 --> 00:43:04,050 arriba 1092 00:43:04,050 --> 00:43:06,530 a la derecha del guión 1093 00:43:06,530 --> 00:43:08,510 pero y porque aquí no me lo 1094 00:43:08,510 --> 00:43:10,170 antes juré, vale 1095 00:43:10,170 --> 00:43:12,250 vale 1096 00:43:12,250 --> 00:43:14,550 pues este va a ser 1097 00:43:14,550 --> 00:43:16,429 el de 1098 00:43:16,429 --> 00:43:18,590 actualizar, añadiendo un pedido 1099 00:43:18,590 --> 00:43:20,489 nuevo, en este caso 1100 00:43:20,489 --> 00:43:24,329 es para lo único que usábamos 1101 00:43:24,329 --> 00:43:26,269 actualizar, para añadirle un pedido nuevo 1102 00:43:26,269 --> 00:43:28,329 eso nos facilita 1103 00:43:28,329 --> 00:43:30,550 que el insertar sea solamente por descripción 1104 00:43:30,550 --> 00:43:32,670 insertamos un pedido por descripción solamente 1105 00:43:32,670 --> 00:43:36,750 si hubiéramos añadido el cliente 1106 00:43:36,750 --> 00:43:37,929 los clientes que han hecho un pedido 1107 00:43:37,929 --> 00:43:40,449 pues claro, aquí ya se complicaría con un montón de controles 1108 00:43:40,449 --> 00:43:41,010 y de cosas 1109 00:43:41,010 --> 00:43:43,869 pero hemos hecho la versión corta 1110 00:43:43,869 --> 00:43:47,840 que tampoco es tan corta 1111 00:43:47,840 --> 00:43:48,139 pero 1112 00:43:48,139 --> 00:43:51,780 vale, y esta era 1113 00:43:51,780 --> 00:43:53,219 actualizar 1114 00:43:53,219 --> 00:43:59,360 y nos falta consultar 1115 00:43:59,360 --> 00:44:20,820 vale, aquí 1116 00:44:20,820 --> 00:44:22,920 lo único es 1117 00:44:22,920 --> 00:44:23,639 que 1118 00:44:23,639 --> 00:44:27,460 tanto eliminar como actualizar 1119 00:44:27,460 --> 00:44:29,699 como consultar, como se van a hacer por código 1120 00:44:29,699 --> 00:44:31,719 tienen que tener 1121 00:44:31,719 --> 00:44:33,699 el desplegable con todos 1122 00:44:33,699 --> 00:44:36,260 entonces podemos hacer un desplegable 1123 00:44:36,260 --> 00:44:36,980 en cada panel 1124 00:44:36,980 --> 00:44:40,139 uno aquí, otro aquí, otro aquí 1125 00:44:40,139 --> 00:44:41,960 en cada panel un desplegable 1126 00:44:41,960 --> 00:44:44,159 o a lo mejor 1127 00:44:44,159 --> 00:44:45,840 esto ya va en gusto 1128 00:44:45,840 --> 00:44:47,980 si uno lo quiere hacer, pues pone el desplegable 1129 00:44:47,980 --> 00:44:48,360 fuera 1130 00:44:48,360 --> 00:44:51,619 ponemos el desplegable aquí fuera 1131 00:44:51,619 --> 00:44:54,000 mucho mejor y así nos replicamos 1132 00:44:54,000 --> 00:44:55,460 ese desplegable en los tres paneles 1133 00:44:55,460 --> 00:44:57,940 entonces pues aquí lo ideal es que 1134 00:44:57,940 --> 00:44:59,519 hubiera un combo box 1135 00:44:59,519 --> 00:45:03,119 o podéis explorar 1136 00:45:03,119 --> 00:45:04,199 un JList 1137 00:45:04,199 --> 00:45:06,199 un JList 1138 00:45:06,199 --> 00:45:08,440 es el componente este 1139 00:45:08,440 --> 00:45:10,340 que es como un área de texto pero que te 1140 00:45:10,340 --> 00:45:10,900 permite 1141 00:45:10,900 --> 00:45:15,539 bueno 1142 00:45:15,539 --> 00:45:17,860 es otra forma de 1143 00:45:17,860 --> 00:45:22,300 bueno el JList tiene un modelo 1144 00:45:22,300 --> 00:45:24,780 que tú, a ver, no es que haya muchas diferencias 1145 00:45:24,780 --> 00:45:25,800 pero 1146 00:45:25,800 --> 00:45:28,500 es más habitual y es más 1147 00:45:28,500 --> 00:45:30,059 cómodo de manejar 1148 00:45:30,059 --> 00:45:32,460 sería lo ideal que lo averiguarais 1149 00:45:32,460 --> 00:45:33,760 que lo investigarais con un JList 1150 00:45:33,760 --> 00:45:42,360 A ver si, por ejemplo, un JLIS, el Eclipse seguro que usa un JLIS en alguna de las cosas que tiene por aquí. 1151 00:45:42,780 --> 00:45:48,420 A ver si yo pongo aquí propiedades, por ejemplo. 1152 00:45:51,019 --> 00:45:53,380 Es un JLIS de la parte de la mejor de la vida del mundo. 1153 00:45:55,579 --> 00:45:58,760 Espera, bueno, vamos a buscar la imagen en internet y ya está. 1154 00:46:13,519 --> 00:46:14,780 Jolín con la Wi-Fi nueva. 1155 00:46:32,179 --> 00:46:32,619 Vale. 1156 00:46:36,119 --> 00:46:37,400 JList 1157 00:46:37,400 --> 00:46:38,119 Java 1158 00:46:38,119 --> 00:46:39,199 Swing 1159 00:46:39,199 --> 00:46:43,739 Vale, el JList 1160 00:46:43,739 --> 00:46:46,539 es este componente 1161 00:46:46,539 --> 00:46:48,139 en lugar de 1162 00:46:48,139 --> 00:46:50,159 aparecerte en un desplegable, te aparece en un área 1163 00:46:50,159 --> 00:46:50,739 como esta 1164 00:46:50,739 --> 00:46:52,460 ¿Vale? 1165 00:46:54,079 --> 00:46:56,119 Claro, un JList es esto 1166 00:46:56,119 --> 00:46:58,400 y tú seleccionas 1167 00:46:58,400 --> 00:46:59,659 aquí el que quieres 1168 00:46:59,659 --> 00:47:02,400 y también tienes su evento asociado 1169 00:47:02,400 --> 00:47:03,380 o puedes, ¿vale? 1170 00:47:03,840 --> 00:47:05,739 Tú seleccionas y luego le das al botoncito 1171 00:47:05,739 --> 00:47:06,719 Quiero borrar este 1172 00:47:06,719 --> 00:47:08,739 O quiero eliminar 1173 00:47:08,739 --> 00:47:10,980 Pues o bien en un combo box 1174 00:47:10,980 --> 00:47:13,119 O bien en un JLIS aparecerán todos los IDs 1175 00:47:13,119 --> 00:47:14,320 Con la descripción 1176 00:47:14,320 --> 00:47:15,519 ¿Vale? 1177 00:47:17,099 --> 00:47:19,400 Entonces esta aplicación 1178 00:47:19,400 --> 00:47:20,760 Que era para agregar un nombre 1179 00:47:20,760 --> 00:47:23,320 Pues ese nombre se podía haber agregado en combo box 1180 00:47:23,320 --> 00:47:25,139 Y ya está, y luego seleccionas del combo box 1181 00:47:25,139 --> 00:47:27,340 Y la diferencia 1182 00:47:27,340 --> 00:47:29,179 Es que el JLIS lo ves todo como más claro 1183 00:47:29,179 --> 00:47:31,019 Porque es que lo tienes ahí abierto y lo ves todo 1184 00:47:31,019 --> 00:47:32,920 El combo box tienes que desplegarlo 1185 00:47:32,920 --> 00:47:34,179 ¿Y el combo box cómo puedes hacerlo? 1186 00:47:34,179 --> 00:47:47,039 A ver, en el combo box lo ideal es que le añades 1187 00:47:47,039 --> 00:47:48,920 solamente los string y ya está, no lo cargues 1188 00:47:48,920 --> 00:47:50,320 con todo el objeto, claro 1189 00:47:50,320 --> 00:47:53,019 al combo box le añades solo el string que tú has construido 1190 00:47:53,019 --> 00:47:54,539 en base al código y la descripción 1191 00:47:54,539 --> 00:47:56,940 ya está, entonces 1192 00:47:56,940 --> 00:47:58,940 hacedlo para probar este 1193 00:47:58,940 --> 00:48:00,780 componente que es quizá más habitual 1194 00:48:00,780 --> 00:48:03,039 que el desplegable en las aplicaciones 1195 00:48:03,039 --> 00:48:04,780 pues un JList, vale, entonces 1196 00:48:04,780 --> 00:48:35,920 Entonces uno de estos tiene que aparecer aquí, un JList, aquí queremos un JList en el que 1197 00:48:35,920 --> 00:48:40,539 vayan apareciendo todos los pedidos que vamos insertando. 1198 00:48:40,539 --> 00:48:44,000 Ese JList automáticamente lleva asociado a una barrita. 1199 00:48:44,000 --> 00:48:45,699 Entonces, si se salen del espacio, 1200 00:48:45,860 --> 00:48:47,699 va a aparecer esa barrita para moverte por él. 1201 00:48:48,539 --> 00:48:50,019 Entonces, cuando le demos a eliminar, 1202 00:48:50,659 --> 00:48:52,000 seleccionaremos el este. 1203 00:48:52,139 --> 00:48:54,780 Lo que pasa es que ahora se nos ha quedado el panel de eliminar 1204 00:48:54,780 --> 00:48:57,420 y consultar, se nos han quedado vacíos, 1205 00:48:57,480 --> 00:48:58,599 porque no hay nada que poner en él. 1206 00:48:59,059 --> 00:49:00,639 Porque eliminar, seleccionaremos esto, 1207 00:49:01,360 --> 00:49:03,699 el botón, como mucho, botón eliminar, nada más. 1208 00:49:04,440 --> 00:49:08,119 Y consultar, bueno, consultar tendrá el área de texto 1209 00:49:08,119 --> 00:49:11,940 para la descripción y para los pedidos y para todo eso. 1210 00:49:12,039 --> 00:49:12,619 Para la lista de productos. 1211 00:49:12,619 --> 00:49:14,639 La lista de productos y el botoncito 1212 00:49:14,639 --> 00:49:15,920 de consultar. 1213 00:49:16,519 --> 00:49:18,519 Eliminar es el que se nos ha quedado con un botón solo. 1214 00:49:19,440 --> 00:49:20,340 Si tenemos aquí... 1215 00:49:20,340 --> 00:49:24,639 Se podría poner 1216 00:49:24,639 --> 00:49:26,079 eliminar aquí abajo, por ejemplo. 1217 00:49:28,659 --> 00:49:30,500 Sí, podemos quitar este panel. 1218 00:49:30,599 --> 00:49:31,960 El panel de eliminar, efectivamente. 1219 00:49:32,880 --> 00:49:34,159 El panel borrar 1220 00:49:34,159 --> 00:49:35,539 fuera. 1221 00:49:36,400 --> 00:49:38,059 Este panel... 1222 00:49:38,059 --> 00:49:41,139 No me deja borrarlo desde aquí. 1223 00:49:44,119 --> 00:49:45,619 suprimir 1224 00:49:45,619 --> 00:49:48,860 no me deja borrarlo 1225 00:49:48,860 --> 00:49:53,539 ah, que se me ha colgado 1226 00:49:53,539 --> 00:49:56,440 el builder es un auto 1227 00:49:56,440 --> 00:49:59,900 bueno, pero sabéis la idea 1228 00:49:59,900 --> 00:50:02,300 debajo del JList 1229 00:50:02,300 --> 00:50:04,320 debajo del JList 1230 00:50:04,320 --> 00:50:06,239 ponéis un propio botón 1231 00:50:06,239 --> 00:50:07,800 eliminar debajo del JList 1232 00:50:07,800 --> 00:50:09,940 y que eliminar sea con este botón 1233 00:50:09,940 --> 00:50:11,380 eliminar y ya está 1234 00:50:11,380 --> 00:50:14,179 y los paneles sean solamente para insertar 1235 00:50:14,179 --> 00:50:15,300 actualizar y consultar 1236 00:50:15,300 --> 00:50:19,300 eliminar botoncito de abajo 1237 00:50:19,300 --> 00:50:21,280 y los tres paneles que quedan 1238 00:50:21,280 --> 00:50:22,260 son esos para el resto 1239 00:50:22,260 --> 00:50:24,519 venga pues ya está 1240 00:50:24,519 --> 00:50:27,619 esta aplicación es la que tenéis que completar