1 00:00:00,000 --> 00:00:06,960 Bueno, vamos a ver un IDE muy interesante que es este, NetBeans. 2 00:00:07,240 --> 00:00:13,599 Está escrito en Java y es muy bueno para hacer proyectos en Java. 3 00:00:14,179 --> 00:00:18,760 Tiene una herramienta bastante interesante para hacer herramientas gráficas 4 00:00:18,760 --> 00:00:23,800 y vais a ver que es muy similar a todos los editores, o mejor dicho, a todos los IDEs. 5 00:00:24,339 --> 00:00:26,440 Para empezar, ¿cómo se crea un proyecto? 6 00:00:26,440 --> 00:00:29,079 Bueno, aquí en esta parte voy a tener los proyectos 7 00:00:29,079 --> 00:00:30,719 Para crear un nuevo proyecto de aquella file 8 00:00:30,719 --> 00:00:32,240 New project 9 00:00:32,240 --> 00:00:35,799 Y aquí me dice que elija el tipo de proyecto 10 00:00:35,799 --> 00:00:37,500 Bueno, pues puede ser 11 00:00:37,500 --> 00:00:40,479 Un proyecto Maven, un proyecto Gradle 12 00:00:40,479 --> 00:00:42,479 Voy a elegir Maven 13 00:00:42,479 --> 00:00:45,079 Por eso de que no lo hemos visto antes 14 00:00:45,079 --> 00:00:47,920 Y le damos a continuar 15 00:00:47,920 --> 00:00:51,539 Bueno, otra cosa que venía ahí 16 00:00:51,539 --> 00:00:52,560 Que era un proyecto Hado 17 00:00:52,560 --> 00:00:55,609 Voy a hacerlo otra vez 18 00:00:55,609 --> 00:00:58,950 Lo cierro antes de tiempo 19 00:00:58,950 --> 00:01:05,430 bueno, aquí tengo el proyecto creado, que no me interesa el proyecto, por la razón que sea 20 00:01:05,430 --> 00:01:10,280 bueno, pues aquí se puede borrar, veis que aquí pone borrar 21 00:01:10,280 --> 00:01:14,680 borro el proyecto, sí, sí, quiero borrar todo, incluso 22 00:01:14,680 --> 00:01:18,840 las fuentes, si le dices borrar, solamente te quita el proyecto 23 00:01:18,840 --> 00:01:22,439 del IDE, no borra los ficheros, pero si activo esta opción, borra todo 24 00:01:22,439 --> 00:01:27,099 el proyecto del IDE y los ficheros, bueno, pues me cargo el proyecto 25 00:01:27,099 --> 00:01:32,040 ahí está, está borrando, venga 26 00:01:32,040 --> 00:01:42,909 Mira, tú puedes, curiosamente no me está aquí, esto de aquí es un control de la RAM que está consumiendo. 27 00:01:43,769 --> 00:01:47,730 Como lo tengo a un nivel muy básico, pues no está consumiendo mucha RAM. 28 00:01:48,310 --> 00:01:49,790 Bueno, vamos a crear un nuevo proyecto de nuevo. 29 00:01:52,519 --> 00:01:56,620 Voy a elegir Maven, aunque podría decir Gradle, y aquí elijo el tipo de proyecto. 30 00:01:57,040 --> 00:01:58,659 Pues voy a elegir un proyecto Java. 31 00:01:59,840 --> 00:02:00,239 Siguiente. 32 00:02:01,079 --> 00:02:06,099 Nombre del proyecto, voy a llamarlo Ejemplo 2. 33 00:02:07,219 --> 00:02:24,560 Y luego, el paquete. Aquí hay que decirle el nombre del paquete. Si fuésemos una organización, por ejemplo, trabajo en Microsoft, pondría com.microsoft. Normalmente suele ser la URL de la empresa. 34 00:02:24,560 --> 00:02:42,439 ¿Qué no tienes empresa? Pues local.ejemplo2. ¿De acuerdo? Esto si no tenemos nombre de la empresa. Creo el proyecto. Le doy tiempo. ¿Vale? 35 00:02:42,439 --> 00:03:12,719 Y aquí muy importante, antes de empezar vais a ver que sale un proyecto en negrita, este es el proyecto principal, si doy a hacer cualquier operación la va a hacer sobre el proyecto principal, como voy a trabajar en el ejemplo 2 lo tengo que poner como proyecto principal, pues me voy aquí a run, donde pone run, pone aquí set my project y elijo el ejemplo 2, vale, vamos a ver que me ha creado, me voy aquí a los paquetes fuentes y aquí tengo el ejemplo 2, aquí está el ejemplo 2 36 00:03:12,719 --> 00:03:15,819 que es un simple hola mundo, si lo doy a ejecutar en este botón de aquí 37 00:03:15,819 --> 00:03:19,280 y me voy aquí a esta pestaña que pone output 38 00:03:19,280 --> 00:03:24,360 lo compila, va a tardar un poquito, porque ahora el Maven 39 00:03:24,360 --> 00:03:27,319 hace exactamente lo mismo que Gradle 40 00:03:27,319 --> 00:03:32,240 busca dependencias, compila y demás, pues está haciendo exactamente lo mismo 41 00:03:32,240 --> 00:03:36,139 como no le he puesto dependencias, pues no ha tardado casi nada, mirad 42 00:03:36,139 --> 00:03:38,379 veis que dice aquí hello world, el típico hello world 43 00:03:38,379 --> 00:03:40,560 de aquí, del típico 44 00:03:40,560 --> 00:03:40,919 Heleware 45 00:03:40,919 --> 00:03:44,699 voy a meterle 46 00:03:44,699 --> 00:03:46,180 aquí más líneas de código, esto 47 00:03:46,180 --> 00:03:48,419 voy a copiarme esta, un poquito más para ver 48 00:03:48,419 --> 00:03:50,400 unas cosas interesantes que tiene 49 00:03:50,400 --> 00:03:52,800 voy a pegarle 50 00:03:52,800 --> 00:03:53,159 varias 51 00:03:53,159 --> 00:03:56,659 antes de eso me voy a crear una variable 52 00:03:56,659 --> 00:03:57,800 in 53 00:03:57,800 --> 00:04:00,719 i igual a 0 54 00:04:00,719 --> 00:04:02,659 y aquí voy a 55 00:04:02,659 --> 00:04:02,939 poner 56 00:04:02,939 --> 00:04:05,340 más 57 00:04:05,340 --> 00:04:08,159 y más más 58 00:04:08,159 --> 00:04:10,060 me voy a copiar esta línea, mira 59 00:04:10,060 --> 00:04:12,379 me la voy a copiar varias veces 60 00:04:12,379 --> 00:04:14,319 por una cuestión 61 00:04:14,319 --> 00:04:17,199 que me interesa ver ahora 62 00:04:17,199 --> 00:04:20,259 me la copié muchas veces 63 00:04:20,259 --> 00:04:24,879 y ahora la tengo copiada 64 00:04:24,879 --> 00:04:27,220 bueno, aquí puedo guardar 65 00:04:27,220 --> 00:04:29,519 si no, control S para guardar 66 00:04:29,519 --> 00:04:31,160 y ahora lo ejecuto 67 00:04:31,160 --> 00:04:32,480 si lo ejecuto, pues vamos a ver 68 00:04:32,480 --> 00:04:34,959 que pondrá hello world y un número 69 00:04:34,959 --> 00:04:39,170 pero muchas veces, es todas las veces que he puesto aquí 70 00:04:39,170 --> 00:04:40,189 le damos paciencia 71 00:04:40,189 --> 00:04:44,550 le he puesto que y vale 0 y más más significa incrementar en 1. 72 00:04:45,470 --> 00:04:49,449 Entonces aquí, aquí valdrá 0, aquí pondrá Hello World, 73 00:04:49,709 --> 00:04:54,430 aquí pondrá 1, 2, 3, 4, porque más más significa aumentar en 1. 74 00:04:54,649 --> 00:04:57,910 ¿Lo veis ahí? He puesto 0, luego no he puesto de nada, 75 00:04:58,009 --> 00:04:59,589 luego 1, 2, 3, vale. 76 00:05:00,089 --> 00:05:01,470 Vamos a ver una cosa interesante. 77 00:05:02,069 --> 00:05:03,949 El debug, vamos a empezar por aquí por el debug. 78 00:05:04,649 --> 00:05:07,189 Debug sirve para encontrar errores en nuestros programas. 79 00:05:07,189 --> 00:05:12,930 programas entonces yo puedo elegir una línea buena que me activa el punto de ruptura pulso 80 00:05:12,930 --> 00:05:18,589 botón derecho y donde pone aquí break point dice todo el berth point vale he activado un 81 00:05:18,589 --> 00:05:24,329 punto de ruptura y le voy a poner otro más o menos por aquí a la mitad he puesto dos puntos 82 00:05:24,329 --> 00:05:29,930 de ruptura entonces el código se va a ejecutar hasta que encuentra algún punto de ruptura ahora 83 00:05:29,930 --> 00:05:36,810 ha aparecido esto de acuerdo este menú que no estaba antes esto es para ver pues el modo 84 00:05:36,810 --> 00:05:41,990 de book el modo de errores si le doy a ejecutar va a ejecutar hasta llegar al primer punto de 85 00:05:41,990 --> 00:05:49,790 ruptura vaya me ejecuta el que no es este mes este a ver este ejecuta hasta que llegue el 86 00:05:49,790 --> 00:05:59,629 primer punto de ruptura vale pero que me está ejecutando el proyecto que no es ahora b 87 00:05:59,629 --> 00:06:16,279 Bien, otra vez más, debug main project, ahora aparece este menú que antes no salía, está preparando todo el entorno de ejecución, aquí lo veis, para hacer el debug, 88 00:06:16,959 --> 00:06:26,579 ya ha llegado, ha ejecutado la primera línea y ha llegado aquí al primer punto de ruptura, o sea, la ejecución va pasito a pasito, en el modo debug va pasito a pasito, 89 00:06:26,579 --> 00:06:34,819 hasta que llega al primer punto de ruptura, y me dice, mira, aquí en variables, dice, has definido la variable i, y veo que tengo estos botones, 90 00:06:35,319 --> 00:06:43,920 este botoncito de aquí significa pasar a la siguiente línea, si pasamos a la siguiente línea, veis que i ha aumentado en 1, ¿no?, ¿de acuerdo?, 91 00:06:43,920 --> 00:06:52,160 porque aquí sumábamos 1 ahí, y se ha quedado al principio de esta línea, si vemos el output, veis que ha ejecutado esta línea roja, 92 00:06:52,160 --> 00:07:03,060 y ahora está en la verde, antes de la verde, antes de ejecutarla, si le doy a siguiente, ¿veis? Ha puesto ahí el hello world, hello world, ahora está en esta línea de aquí, está haciendo el debug, ¿vale? 93 00:07:03,259 --> 00:07:16,449 Voy ejecutándolo línea a línea. En esta línea, ¿qué va a hacer? Pues va a poner hello world y a ver, ¿y cuánto valía? Uno, ¿no? Pues pues va a poner uno y le va a incrementar en uno, ¿vale? 94 00:07:16,449 --> 00:07:37,870 O sea, el más más significa sumar después de la operación, o sea, es como este más más que he puesto aquí, significa que le suma uno después de que ejecute la instrucción. Pues le ha sumado uno y le ha puesto dos. Y si veo el output, pondrá hello world, hello world uno. ¿De acuerdo? Porque el más más, si lo pongo detrás, significa que sume después. 95 00:07:37,870 --> 00:07:40,589 si le voy dando, salta la siguiente instrucción 96 00:07:40,589 --> 00:07:42,529 y así sucesivamente, con este salta la siguiente 97 00:07:42,529 --> 00:07:44,569 instrucción, imaginaos 98 00:07:44,569 --> 00:07:46,610 que quiero, pues estas instrucciones me las quiero 99 00:07:46,610 --> 00:07:48,829 saltar, hemos visto que 100 00:07:48,829 --> 00:07:50,550 voy viendo lo que vale 101 00:07:50,550 --> 00:07:52,529 la variable, imaginaos que estas instrucciones 102 00:07:52,529 --> 00:07:54,490 me las quiero saltar y quiero llegar 103 00:07:54,490 --> 00:07:55,889 a esta instrucción de aquí 104 00:07:55,889 --> 00:07:58,610 ¿de acuerdo? directamente, pues tengo aquí 105 00:07:58,610 --> 00:07:59,230 el state 106 00:07:59,230 --> 00:08:02,050 el run to cursor 107 00:08:02,050 --> 00:08:04,490 ¿de acuerdo? lo que hace es que vais a ver 108 00:08:04,490 --> 00:08:05,670 que salta estas instrucciones 109 00:08:05,670 --> 00:08:14,509 hasta llegar al siguiente punto de ruptura, ahí está, se ha saltado todas estas instrucciones hasta llegar al siguiente punto de ruptura 110 00:08:14,509 --> 00:08:22,170 y ahora podría seguir continuando aquí o en una o en una, la vemos ahí que la va ejecutando de una en una, va poniendo los outputs 111 00:08:22,170 --> 00:08:32,570 o bien si le vuelvo a dar, si le vuelvo a dar y ya está, vais a ver que no hay más puntos de ruptura, va a ejecutar hasta el final 112 00:08:32,570 --> 00:08:36,730 ¿Veis? Ha ejecutado ya hasta el final 113 00:08:36,730 --> 00:08:37,710 Se acabó la ejecución 114 00:08:37,710 --> 00:08:39,710 Y me quita el entorno de debug 115 00:08:39,710 --> 00:08:42,190 Vamos a ver 116 00:08:42,190 --> 00:08:44,330 Bueno, los puntos de ruptura se pueden quitar 117 00:08:44,330 --> 00:08:46,250 Aquí simplemente botón derecho 118 00:08:46,250 --> 00:08:47,950 Y lo quito 119 00:08:47,950 --> 00:08:50,190 Bueno, lo he desactivado 120 00:08:50,190 --> 00:08:52,090 Activo 121 00:08:52,090 --> 00:08:55,610 O directamente quitarlo con el tab 122 00:08:55,610 --> 00:08:57,049 Lo quito 123 00:08:57,049 --> 00:08:59,590 O también haciendo clic, lo quito 124 00:08:59,590 --> 00:09:02,870 ¿Qué más cosas interesantes tiene? 125 00:09:02,929 --> 00:09:04,049 Vamos a ir viendo los menús 126 00:09:04,049 --> 00:09:05,690 que tiene uno a uno. 127 00:09:06,269 --> 00:09:07,669 Bueno, File, Menu File. 128 00:09:08,029 --> 00:09:09,990 Menu File, pues el típico menú File 129 00:09:09,990 --> 00:09:12,690 de todos los editores de texto o todos los procesadores. 130 00:09:13,269 --> 00:09:14,710 Sí que tiene dos opciones muy interesantes, 131 00:09:14,789 --> 00:09:16,690 que son Export, que exporta un fichero zip, 132 00:09:16,809 --> 00:09:18,450 y luego lo puedes importar como fichero zip. 133 00:09:18,870 --> 00:09:19,090 ¿De acuerdo? 134 00:09:19,970 --> 00:09:21,929 Puedo importar ficheros de Clix, 135 00:09:21,970 --> 00:09:24,090 porque Clix es un entorno rey en Java. 136 00:09:24,850 --> 00:09:26,970 Bueno, y aparte, pues imprimir páginas y cosas así. 137 00:09:27,649 --> 00:09:29,190 El típico menú de edición, 138 00:09:29,190 --> 00:09:30,590 sí que tiene una acción curiosa. 139 00:09:32,809 --> 00:09:34,549 Bueno, el típico menú de edición 140 00:09:34,549 --> 00:09:40,470 de deshacer, copiar y pegar y tiene una opción curiosa que es control mayúsculas D 141 00:09:40,470 --> 00:09:45,889 que te permite pegar el historial, o sea, ves aquí todo lo que has ido copiando 142 00:09:45,889 --> 00:09:49,389 y puedes pegar desde el historial, ¿de acuerdo? 143 00:09:50,009 --> 00:09:58,970 Control Z, así puedes luego encontrar, buscar cosas, grabar macros, 144 00:09:59,370 --> 00:10:04,610 o sea, puedes grabar un conjunto de texto y luego cuando dispares la macro se ejecuta ese texto. 145 00:10:04,610 --> 00:10:07,629 Bueno, este es el menú View 146 00:10:07,629 --> 00:10:12,409 Para ver las distintas barras de tareas 147 00:10:12,409 --> 00:10:14,070 Si lo pones en pantalla completa 148 00:10:14,070 --> 00:10:15,289 Si quieres ver solo el editor 149 00:10:15,289 --> 00:10:17,909 Porque fijaros que me ha chupado todo el espacio 150 00:10:17,909 --> 00:10:22,129 Entonces si le doy aquí, control mayúsculas, intro 151 00:10:22,129 --> 00:10:24,769 Se pone menú completo 152 00:10:24,769 --> 00:10:26,830 Y si pongo control mayúsculas, intro 153 00:10:26,830 --> 00:10:30,090 Me quita el editor completo 154 00:10:30,090 --> 00:10:32,210 Esto es muy útil 155 00:10:32,210 --> 00:10:34,250 Esto es muy útil para saber 156 00:10:34,250 --> 00:10:35,950 Lo que estás haciendo 157 00:10:35,950 --> 00:10:37,309 Porque en esta ventanita tan pequeña 158 00:10:37,309 --> 00:10:38,850 Es difícil programar 159 00:10:38,850 --> 00:10:40,629 Puedo navegar por el código 160 00:10:40,629 --> 00:10:43,350 O sea, puedo ir a ficheros, buscar símbolos, etc 161 00:10:43,350 --> 00:10:45,750 Ir a una línea, eso debe ser muy útil 162 00:10:45,750 --> 00:10:46,950 Oye, un error en tal línea 163 00:10:46,950 --> 00:10:48,470 Pues control G y salto a esa línea 164 00:10:48,470 --> 00:10:50,289 O puedo poner bookmarks 165 00:10:50,289 --> 00:10:53,809 El bookmark es un marca páginas 166 00:10:53,809 --> 00:10:55,350 Por ejemplo, voy a poner un bookmark aquí al final 167 00:10:55,350 --> 00:10:56,970 Pues me voy aquí, navegar 168 00:10:56,970 --> 00:10:58,850 Añado un bookmark 169 00:10:58,850 --> 00:11:00,850 Acaba de añadir un bookmark 170 00:11:00,850 --> 00:11:02,909 entonces ahora me voy a otra parte del código 171 00:11:02,909 --> 00:11:05,230 y por alguna razón quiero saltar a ese punto 172 00:11:05,230 --> 00:11:06,950 por la razón que sea, pues me voy 173 00:11:06,950 --> 00:11:08,889 a los bookmarks, salto al siguiente 174 00:11:08,889 --> 00:11:10,009 pulso intro 175 00:11:10,009 --> 00:11:13,269 y veis que salta, bueno me ha saltado 176 00:11:13,269 --> 00:11:14,769 es que tenía un bookmark 177 00:11:14,769 --> 00:11:16,629 en otro, mira, me ha servido de ejemplo 178 00:11:16,629 --> 00:11:19,110 he metido dos bookmarks, este es un bookmark 179 00:11:19,110 --> 00:11:20,889 que tenía en otro fichero, pues me ha saltado 180 00:11:20,889 --> 00:11:22,990 al bookmark, al marca páginas que tenía en otro 181 00:11:22,990 --> 00:11:24,250 fichero, me ha servido 182 00:11:24,250 --> 00:11:26,970 me ha servido de ejemplo, no era el bookmark 183 00:11:26,970 --> 00:11:28,929 al que quería saltar, pero bueno, vamos a ver si salto 184 00:11:28,929 --> 00:11:29,169 ahora 185 00:11:29,169 --> 00:11:33,509 a ver, claro, este 186 00:11:33,509 --> 00:11:38,409 ahora, este es el bookmark 187 00:11:38,409 --> 00:11:40,330 al que quería saltar, ¿vale? pero que veis 188 00:11:40,330 --> 00:11:42,370 que puede saltar incluso a otro fichero que tengo cerrado 189 00:11:42,370 --> 00:11:44,409 fuente 190 00:11:44,409 --> 00:11:46,509 aquí el menú fuente 191 00:11:46,509 --> 00:11:47,929 este es interesante 192 00:11:47,929 --> 00:11:50,190 bueno, imaginaros, por ejemplo 193 00:11:50,190 --> 00:11:52,389 la primera opción, el de formato, esta se usa mucho, imaginaos 194 00:11:52,389 --> 00:11:54,370 que copiáis y pegáis un texto 195 00:11:54,370 --> 00:11:56,509 ¿no? copiáis y pegáis 196 00:11:56,509 --> 00:11:58,210 y cuando copias y pegas 197 00:11:58,210 --> 00:12:00,470 lo habitual es que se copia así de mal 198 00:12:00,470 --> 00:12:02,149 ¿vale? el texto te queda 199 00:12:02,149 --> 00:12:07,490 suele quedar pues así, mal intentado, esto está mal y esto en un examen te lo puntúan como mal 200 00:12:07,490 --> 00:12:12,690 y de hecho si estás en un proyecto de software y esto no lo respetas seguramente te regañan 201 00:12:12,690 --> 00:12:21,190 y bien hecho por regañarte porque vais a ver que es muy incómodo, entonces marco la parte que quiero reformatear 202 00:12:21,190 --> 00:12:29,809 me voy aquí a source, elijo formato y vais a ver que automáticamente me pone el formato automático 203 00:12:29,809 --> 00:12:33,309 aquí hay más opciones, si os habéis fijado 204 00:12:33,309 --> 00:12:34,450 con estas dos opciones 205 00:12:34,450 --> 00:12:37,590 sirven para, yo selecciono 206 00:12:37,590 --> 00:12:38,649 un cacho de texto 207 00:12:38,649 --> 00:12:41,350 esto es común a todos los editores 208 00:12:41,350 --> 00:12:43,029 selecciono una parte de texto y luego 209 00:12:43,029 --> 00:12:45,210 con el tabulador lo intento 210 00:12:45,210 --> 00:12:47,450 y con mayúsculas tabulador lo desintento 211 00:12:47,450 --> 00:12:49,210 esto se usa mucho y es algo común 212 00:12:49,210 --> 00:12:50,370 en todos los editores 213 00:12:50,370 --> 00:12:52,570 ¿qué más tenemos aquí en source? 214 00:12:53,110 --> 00:12:55,830 bueno, subir, bajar, duplicar 215 00:12:55,830 --> 00:12:57,809 poner o quitar comentarios 216 00:12:57,809 --> 00:12:59,269 aquí le he puesto el comentario 217 00:12:59,269 --> 00:13:03,259 Se lo quito, ¿de acuerdo? 218 00:13:03,360 --> 00:13:05,340 Si marcó, pues lo habéis visto que pone 219 00:13:05,340 --> 00:13:06,980 Y quita el comentario, esto es útil 220 00:13:06,980 --> 00:13:09,120 ¿Qué más? 221 00:13:09,820 --> 00:13:10,659 Completar código 222 00:13:10,659 --> 00:13:13,600 Esto básicamente lo suelo hacer 223 00:13:13,600 --> 00:13:14,779 Según estás escribiendo 224 00:13:14,779 --> 00:13:16,899 ¿De acuerdo? Insertar 225 00:13:16,899 --> 00:13:19,379 Arreglar el código, esto es una opción interesante 226 00:13:19,379 --> 00:13:20,679 Si meto la pata 227 00:13:20,679 --> 00:13:23,340 Si meto la pata, él puede intentar arreglarlo 228 00:13:23,860 --> 00:13:25,399 Bueno, este no lo va a arreglar 229 00:13:25,399 --> 00:13:26,820 Pero bueno, me va a dar la sugerencia 230 00:13:26,820 --> 00:13:30,120 Si pongo aquí ratón, habéis visto que lo he subrayado en rojo 231 00:13:30,120 --> 00:13:32,919 Si pongo aquí retorno, me dice, oye, que espera un punto y coma. 232 00:13:33,659 --> 00:13:37,080 Pulsa al intro para ver las pistas. 233 00:13:37,659 --> 00:13:39,259 Aquí me dice que te falta el punto y coma. 234 00:13:40,440 --> 00:13:41,720 Vale, pues le pongo el punto y coma. 235 00:13:42,580 --> 00:13:44,379 Bueno, este ejemplo ya he dicho que no lo iba a corregir, 236 00:13:44,500 --> 00:13:48,200 pero hay otro tipo de códigos que sí que los corrige, o sea, sí que detecta fallos. 237 00:13:48,740 --> 00:13:54,440 Si aquí a la variable, la voy a nombrar mal, la he llamado con la mayúscula. 238 00:13:55,500 --> 00:13:58,259 De acuerdo, fijaos que de repente aquí me han salido un montón de errores 239 00:13:58,259 --> 00:14:12,899 Y aquí me sale como una especie de albentencia. Esto no es un error. Me dice la variable nunca, nunca se lee. ¿De acuerdo? Y me dice, ¿la quieres quitar? Pues no, no la quiero quitar. ¿Vale? Porque está pensando que eso es un error. 240 00:14:12,899 --> 00:14:37,059 Aquí, por ejemplo, me dice, oye, la variable y minúscula no existe. Pues mira, puedes crearla. La vamos a crear. Si le decimos crear, la crea. Claro, la ha creado como un string, ¿vale? Hace lo que puede. Si os fijáis, él lo intenta. Él al menos lo intenta. A veces acierta. Sobre todo lo vais a ver ahora con los import. Ahora vamos a hacer un ejemplo de importar una cosa y vais a ver que los import está bien para los import. 241 00:14:37,059 --> 00:14:57,759 Luego tengo, bueno, aparte de todo esto, vale, refactorizar. Esto sirve, lo veremos más adelante en el curso, de hecho tenemos un tema solamente dedicado a refactorización, pero refactorizar, un adelanto a lo que es la refactorización, es modificar el código para que sea más legible. 242 00:14:57,759 --> 00:15:11,860 El objetivo de refactorizar es que el código sea más legible. ¡Ojo! Eso no significa que sea más óptimo. ¿O no? Después de refactorizar el código puede ser más óptimo o no serlo. ¿De acuerdo? Pero refactorizar es simplemente que sea más legible. 243 00:15:12,419 --> 00:15:17,399 Entonces, por ejemplo, una cosa que se suele hacer mucho en refactorización es cambiarle el nombre a las variables. 244 00:15:17,919 --> 00:15:22,299 Por ejemplo, y no representa nada, ¿de acuerdo? 245 00:15:22,700 --> 00:15:25,600 A lo mejor me interesa ponerle un nombre más largo, más representativo. 246 00:15:25,600 --> 00:15:35,259 Pues entonces, con mayúsculas, cursor, selecciono lo que quiero, cambiar, me voy a refactorizar, rename, 247 00:15:36,000 --> 00:15:38,639 y aquí le pongo el nuevo nombre que quiero que tenga. 248 00:15:38,779 --> 00:15:40,299 Pues le voy a poner contador. 249 00:15:40,299 --> 00:15:44,419 Y si os fijáis, ahora cuando dé aquí refactorizar, fijaros lo que va a pasar con estas IEs. 250 00:15:46,980 --> 00:15:47,980 ¡Hala! Las ha cambiado. 251 00:15:48,299 --> 00:15:49,019 Y lo hace bien. 252 00:15:49,299 --> 00:15:55,000 O sea, no es un simple buscar y reemplazar, porque yo con un editor de toda la vida podía buscar y reemplazar. 253 00:15:55,100 --> 00:15:56,419 No, no. Es que lo hace bien. 254 00:15:57,740 --> 00:16:00,580 Bueno, aquí hay muchas opciones que por ahora nos vamos a saltar. 255 00:16:02,600 --> 00:16:04,539 Ejecutar. Vale, el menú ejecutar. 256 00:16:05,500 --> 00:16:07,139 Este tiene varias opciones interesantes. 257 00:16:07,259 --> 00:16:09,500 Bueno, Build simplemente compila el proyecto. 258 00:16:09,500 --> 00:16:21,049 Si le doy a build, simplemente lo compila, no lo ejecuta. Esto viene bien para cuando meto dependencias, pues para que las descargue o simplemente para ver si voy bien. 259 00:16:21,889 --> 00:16:26,570 Oye, ¿compila el código? Sí, pues hala, compila el código. Voy a probar cada uno de los errores para que veáis. 260 00:16:27,529 --> 00:16:36,289 Bueno, cuando cometas un error vais a ver que ya te lo dice aquí, ¿de acuerdo? Pero a veces puedes tocar un archivo y ese archivo tener consecuencias en otro. 261 00:16:36,289 --> 00:16:39,470 ¿de acuerdo? puedes trabajar en una clase 262 00:16:39,470 --> 00:16:41,490 en un sitio, cambiar el nombre a una variable 263 00:16:41,490 --> 00:16:43,730 y esa variable a lo mejor la estás usando en otro archivo 264 00:16:43,730 --> 00:16:44,789 entonces te da un error 265 00:16:44,789 --> 00:16:47,029 puede venir bien 266 00:16:47,029 --> 00:16:48,710 y eso no lo vas a ver 267 00:16:48,710 --> 00:16:51,009 porque no estás editando el otro archivo 268 00:16:51,009 --> 00:16:53,129 pues entonces acabo de cometer un error 269 00:16:53,129 --> 00:16:55,250 adrede, si le doy aquí a compilar 270 00:16:55,250 --> 00:16:59,059 me va a decir aquí el error 271 00:16:59,059 --> 00:17:00,840 ya sé que está aquí 272 00:17:00,840 --> 00:17:03,200 lo estoy viendo, pero si yo no lo viera 273 00:17:03,200 --> 00:17:04,299 por la razón que fuera 274 00:17:04,299 --> 00:17:06,880 me lo va a decir 275 00:17:06,880 --> 00:17:09,160 aquí mirad, me dice 276 00:17:09,160 --> 00:17:11,259 error está en el archivo 277 00:17:11,259 --> 00:17:13,420 el error está en el archivo 278 00:17:13,420 --> 00:17:14,099 ejemplo 2 279 00:17:14,099 --> 00:17:17,759 y me dice que me falta un punto y coma 280 00:17:17,759 --> 00:17:19,519 en la línea 17, lo veis ahí 281 00:17:19,519 --> 00:17:21,619 aquí dice la ruta, el archivo 282 00:17:21,619 --> 00:17:23,740 la línea, la columna 283 00:17:23,740 --> 00:17:24,920 donde espera estar el error 284 00:17:24,920 --> 00:17:27,440 y luego el error que he encontrado, porque hace falta 285 00:17:27,440 --> 00:17:29,059 un punto y coma, si hago clic aquí 286 00:17:29,059 --> 00:17:31,160 me salta donde está el error 287 00:17:31,160 --> 00:17:33,119 me voy a poner en otra línea, me voy a poner en otro sitio 288 00:17:33,119 --> 00:17:34,960 si hago clic en el error 289 00:17:34,960 --> 00:17:37,279 me salta donde está el error 290 00:17:37,279 --> 00:17:39,400 y aquí le pongo el punto incómodo 291 00:17:39,400 --> 00:17:39,940 y acabamos 292 00:17:39,940 --> 00:17:43,039 ¿puedo limpiar? 293 00:17:43,400 --> 00:17:45,660 esto es limpiar y compilar 294 00:17:45,660 --> 00:17:47,200 esto es muy interesante 295 00:17:47,200 --> 00:17:48,640 cuando tienes muchas dependencias 296 00:17:48,640 --> 00:17:49,779 y has hecho una limpieza 297 00:17:49,779 --> 00:17:51,279 entonces te has descargado 298 00:17:51,279 --> 00:17:52,180 todas las dependencias 299 00:17:52,180 --> 00:17:54,519 y están ahí molestando 300 00:17:54,519 --> 00:17:56,640 imaginaos que hay un archivo 301 00:17:56,640 --> 00:17:57,680 del que antes dependías 302 00:17:57,680 --> 00:17:58,500 una dependencia 303 00:17:58,500 --> 00:18:00,640 una biblioteca de la que antes dependías 304 00:18:00,640 --> 00:18:02,460 que de repente la quitas 305 00:18:02,460 --> 00:18:05,759 entonces si antes la usabas 306 00:18:05,759 --> 00:18:07,960 Pues la has descargado y está ocupando espacio 307 00:18:07,960 --> 00:18:09,619 Entonces la podemos limpiar 308 00:18:09,619 --> 00:18:11,400 Le damos aquí a limpiar y construir 309 00:18:11,400 --> 00:18:12,579 Entonces borra todo 310 00:18:12,579 --> 00:18:14,200 Vais a ver que tarda mucho 311 00:18:14,200 --> 00:18:16,740 Borra todo y lo hace todo desde el principio 312 00:18:16,740 --> 00:18:20,980 El IDE suele ser muy ahorrativo 313 00:18:20,980 --> 00:18:22,660 O sea, si hay una cosa que ya ha compilado 314 00:18:22,660 --> 00:18:23,819 No la compila otra vez 315 00:18:23,819 --> 00:18:26,079 Que eso puede ser 316 00:18:26,079 --> 00:18:28,380 Para determinadas cosas fuentes de problemas 317 00:18:28,380 --> 00:18:31,279 Bueno, también me está diciendo aquí 318 00:18:31,279 --> 00:18:34,220 Mira, en esta línea me ha generado el fichero hard 319 00:18:35,759 --> 00:18:37,420 de la aplicación, ¿vale? 320 00:18:37,480 --> 00:18:39,400 Mira, me está diciendo aquí que en este sitio, en esta 321 00:18:39,400 --> 00:18:43,140 ruta, no lo había dicho, pero 322 00:18:43,140 --> 00:18:44,779 me está diciendo aquí que ha 323 00:18:44,779 --> 00:18:47,160 generado el fichero hard de la aplicación. 324 00:18:47,259 --> 00:18:48,640 Bueno, pues ahí me ha generado el fichero hard 325 00:18:48,640 --> 00:18:51,099 de la aplicación. Más 326 00:18:51,099 --> 00:18:53,099 cosas. Debug, que ya 327 00:18:53,099 --> 00:18:53,640 lo hemos visto. 328 00:18:55,059 --> 00:18:56,960 Debug. Bueno, aquí en 329 00:18:56,960 --> 00:18:59,000 run también tengo lo de seleccionar el 330 00:18:59,000 --> 00:19:00,339 proyecto principal, que ya lo hemos visto. 331 00:19:00,920 --> 00:19:02,740 Puedo elegir incluso la configuración, 332 00:19:03,319 --> 00:19:05,019 elegir la versión de Java que quiero usar, 333 00:19:05,019 --> 00:19:06,920 porque no me ha preguntado qué versión de Java quiero usar. 334 00:19:07,519 --> 00:19:15,759 Vale, pues aquí puedo, si me voy aquí a cambiar las opciones, esto de Customize, pues puedo cambiar la versión de Java. 335 00:19:16,720 --> 00:19:19,420 Bueno, aquí en Debug puedo hacer el debut del proyecto. 336 00:19:20,279 --> 00:19:22,000 Profile ya lo veremos, ¿de acuerdo? 337 00:19:22,180 --> 00:19:29,859 Team, tienes para, pues cuando trabajamos en equipo tendré un repositorio, pues puedo elegir el repositorio, por ejemplo, Wit. 338 00:19:30,200 --> 00:19:35,799 Bueno, este no lo tengo asignado a ningún repositorio, pero si tengo un proyecto que esté asignado a algún repositorio, 339 00:19:35,799 --> 00:19:37,779 por ejemplo este, este sí que lo tengo en un repositorio 340 00:19:37,779 --> 00:19:38,720 me voy aquí al menú team 341 00:19:38,720 --> 00:19:41,000 pues lo tengo en wit 342 00:19:41,000 --> 00:19:42,680 ¿de acuerdo? lo tengo en wit 343 00:19:42,680 --> 00:19:45,759 y aquí puedo pues añadir un archivo 344 00:19:45,759 --> 00:19:47,500 hacer un commit, hacer un 345 00:19:47,500 --> 00:19:48,980 checkout, muy importante 346 00:19:48,980 --> 00:19:51,220 cuando hagáis un push 347 00:19:51,220 --> 00:19:53,559 cuando hagáis un push 348 00:19:53,559 --> 00:19:55,420 está por aquí, no lo veo ahora 349 00:19:55,420 --> 00:19:57,220 ¿dónde está el push? 350 00:19:59,089 --> 00:20:00,930 no lo veo ahora, bueno, pues cuando hagáis un push 351 00:20:00,930 --> 00:20:02,309 hacedlo siempre desde aquí 352 00:20:02,309 --> 00:20:05,680 o sea, aquí hay botón derecho 353 00:20:05,680 --> 00:20:06,859 wit 354 00:20:06,859 --> 00:20:09,599 y le haces un... ¿Dónde está push? 355 00:20:10,900 --> 00:20:11,920 No lo encuentro ahora. 356 00:20:12,660 --> 00:20:13,420 Tengo el commit. 357 00:20:15,220 --> 00:20:16,000 Bueno, espera, claro. 358 00:20:16,079 --> 00:20:17,839 Como no he hecho ningún commit, no tengo push. 359 00:20:18,500 --> 00:20:19,619 Bueno, pues cuando hago el commit 360 00:20:19,619 --> 00:20:21,980 me sale el push y le puedo hacer un push. 361 00:20:22,240 --> 00:20:23,980 Si le hacéis un push, hacerlo siempre 362 00:20:23,980 --> 00:20:25,539 dando botón derecho aquí. 363 00:20:26,220 --> 00:20:27,740 Y te vas aquí y haces el push. 364 00:20:27,859 --> 00:20:29,400 El commit y el push. ¿Por qué? 365 00:20:29,799 --> 00:20:30,819 Siempre desde aquí. 366 00:20:31,819 --> 00:20:33,940 Porque si lo haces desde aquí, solamente 367 00:20:33,940 --> 00:20:36,039 te hace el commit del archivo 368 00:20:36,039 --> 00:20:37,940 actual, solamente de este 369 00:20:37,940 --> 00:20:40,039 si has modificado 5 archivos 370 00:20:40,039 --> 00:20:41,839 solamente te va a subir 371 00:20:41,839 --> 00:20:44,140 este, entonces si lo haces 372 00:20:44,140 --> 00:20:46,039 desde aquí, dando botón aquí 373 00:20:46,039 --> 00:20:47,259 derecho a wit 374 00:20:47,259 --> 00:20:50,140 pues te lo va a hacer de todo 375 00:20:50,140 --> 00:20:52,000 el proyecto, no solamente de este archivito 376 00:20:52,000 --> 00:20:54,160 tools, bueno herramientas 377 00:20:54,160 --> 00:20:56,259 varias, o sea puede hacer un div 378 00:20:56,259 --> 00:20:58,220 entre archivos, aplicar un div 379 00:20:58,220 --> 00:20:59,660 con distintas herramientas 380 00:20:59,660 --> 00:21:01,980 el típico menú windows para ver 381 00:21:01,980 --> 00:21:03,339 los distintos elementos 382 00:21:03,339 --> 00:21:05,200 y la ayuda 383 00:21:05,960 --> 00:21:07,180 Vamos a ver otra cosa interesante. 384 00:21:07,359 --> 00:21:08,720 Vamos a añadir algo al proyecto. 385 00:21:09,119 --> 00:21:12,559 Bueno, me voy a mi proyecto, porque tengo una clase por ahora. 386 00:21:13,039 --> 00:21:13,859 Y si quiero añadir otra. 387 00:21:14,619 --> 00:21:16,259 Vamos a añadir otra clase. 388 00:21:16,380 --> 00:21:19,440 Bueno, pues me voy aquí al código, botón derecho, de CNew. 389 00:21:19,440 --> 00:21:25,180 Y puedo añadir una nueva carpeta, una nueva clase de Java. 390 00:21:25,359 --> 00:21:27,220 Pues puedo añadir una nueva clase de Java. 391 00:21:28,420 --> 00:21:29,079 ¿De acuerdo? 392 00:21:29,299 --> 00:21:31,200 O puedo añadir otro tipo de cosas. 393 00:21:32,119 --> 00:21:33,359 Vale, voy a añadir una clase de Java. 394 00:21:33,359 --> 00:22:04,990 Azar. New class. Bueno, aquí le pongo el nombre. Le voy a poner nueva y la añado. Y me crea la nueva clase. ¿De acuerdo? ¿Que la quiero eliminar? Botón derecho. ¿Dónde está aquí? Eliminar. A ver. Perdón. Botón derecho. Ahora. Eliminar. Eliminar. ¿Quieres borrarla? Sí, por supuesto. Borrarla. 395 00:22:04,990 --> 00:22:26,000 Voy a añadir otra clase, un pequeño ejemplo. Vamos a ver ahora una opción muy interesante que tiene este entorno, que es el de diseñar interfaces gráficas. Botón derecho, aquí en la carpeta donde quiero añadir el proyecto y me doy a New. Other. ¿De acuerdo? Other. 396 00:22:26,000 --> 00:22:28,720 Y aquí me dice que puedo añadir un swing 397 00:22:28,720 --> 00:22:32,059 Swing.fc es una interfaz gráfica 398 00:22:32,059 --> 00:22:33,759 Ya es un poquito antigua 399 00:22:33,759 --> 00:22:37,799 De hecho está intentando reemplazar la Oracle por otra cosa 400 00:22:37,799 --> 00:22:40,140 Por JavaFX 401 00:22:40,140 --> 00:22:42,700 Si lo vais a ver, JavaFX 402 00:22:42,700 --> 00:22:45,940 Pero bueno, de momento está aquí y se sigue usando 403 00:22:45,940 --> 00:22:48,660 Entonces le voy a decir que me cree una nueva ventana 404 00:22:48,660 --> 00:22:49,859 Una ventana es un frame 405 00:22:49,859 --> 00:22:52,640 Tengo los dialogues 406 00:22:52,640 --> 00:22:54,319 Esto es un dialogue 407 00:22:55,180 --> 00:23:02,259 La ventana que te bloquea, la ventana principal, o sea, estos menús que se ven aquí que te bloquean el uso de ventana principal, se llaman dialogues. 408 00:23:02,559 --> 00:23:05,400 Esta ventana de aquí, que acabo de abrir, es un dialogue. 409 00:23:05,900 --> 00:23:09,660 Y luego tengo los frames, que los frames son las ventanas convencionales. 410 00:23:10,420 --> 00:23:15,420 ¿Qué más puedo hacer? Bueno, y luego tengo un ejemplo de aplicación, que me pone a esta menús. 411 00:23:15,799 --> 00:23:17,700 Voy a hacer primero el ejemplo de aplicación, ¿vale? 412 00:23:17,700 --> 00:23:22,019 Lo habitual es esta, hacer un frame, ¿de acuerdo? 413 00:23:22,019 --> 00:23:24,200 que es una ventana sin nada, en la que pongo cosas 414 00:23:24,200 --> 00:23:25,980 pero 415 00:23:25,980 --> 00:23:27,319 esta me pone ya los menús 416 00:23:27,319 --> 00:23:29,980 le voy a hacer que el siguiente 417 00:23:29,980 --> 00:23:32,440 me dice el nombre, la voy a llamar 418 00:23:32,440 --> 00:23:33,779 de la clase la voy a llamar ventana 419 00:23:33,779 --> 00:23:38,069 y lo doy aquí a finalizar 420 00:23:38,069 --> 00:23:39,910 y me va a crear la nueva clase 421 00:23:39,910 --> 00:23:42,609 ahí la tenemos, ventana 422 00:23:42,609 --> 00:23:44,309 bueno, y aquí me sale 423 00:23:44,309 --> 00:23:46,630 algo más, aquí me sale algo más 424 00:23:46,630 --> 00:23:48,109 veis que pone aquí source 425 00:23:48,109 --> 00:23:49,910 que es el código fuente 426 00:23:49,910 --> 00:23:52,650 que me ha metido un montón de código 427 00:23:52,650 --> 00:23:54,130 las partes en gris es 428 00:23:54,130 --> 00:23:56,269 es que no las toque, que las ha generado él 429 00:23:56,269 --> 00:23:58,049 y no me deja tocarlas, ¿vale? 430 00:23:58,089 --> 00:24:00,450 Esas las ha generado él y va a seguir generando 431 00:24:00,450 --> 00:24:02,250 cosas y no me deja tocarlas. Y luego 432 00:24:02,250 --> 00:24:04,329 en la parte de diseño, aquí está 433 00:24:04,329 --> 00:24:06,430 la ventana que me ha generado, que me ha generado 434 00:24:06,430 --> 00:24:08,509 una simple ventana con un menú. Si le doy 435 00:24:08,509 --> 00:24:09,089 aquí a ver, 436 00:24:10,789 --> 00:24:12,750 pues ves, está la ventana que he generado. 437 00:24:13,430 --> 00:24:14,309 ¿De acuerdo? Que la ha generado 438 00:24:14,309 --> 00:24:18,000 hasta elementos. Si yo doy 439 00:24:18,000 --> 00:24:19,960 a ejecutar, vais a ver 440 00:24:19,960 --> 00:24:22,000 que no sale la ventana. Me van 441 00:24:22,000 --> 00:24:23,859 a salir aquí los alamundos 442 00:24:23,859 --> 00:24:27,720 a ver que se está compilando 443 00:24:27,720 --> 00:24:30,099 paciencia, me salen aquí los solamundos 444 00:24:30,099 --> 00:24:34,369 vamos, ahí está 445 00:24:34,369 --> 00:24:36,430 los solamundos, me han salido los solamundos 446 00:24:36,430 --> 00:24:38,769 pero no me ha salido la ventana, ¿por qué? porque en ningún momento 447 00:24:38,769 --> 00:24:40,829 le ha dicho que la ponga, en el proyecto principal 448 00:24:40,829 --> 00:24:42,130 o sea, aquí en el main 449 00:24:42,130 --> 00:24:44,630 tengo que decirle que en algún momento muestre la ventana 450 00:24:44,630 --> 00:24:46,950 vale, pues, para mostrar la ventana 451 00:24:46,950 --> 00:24:47,950 me voy aquí a source 452 00:24:47,950 --> 00:24:50,470 pincho la ventana, me voy a source, y en la parte final 453 00:24:50,470 --> 00:24:51,769 vemos que hay un main 454 00:24:51,769 --> 00:24:53,690 vemos que hay un main 455 00:24:53,690 --> 00:24:56,190 y aquí pone crear y mostrar 456 00:24:56,190 --> 00:24:58,470 el formulario, vale 457 00:24:58,470 --> 00:25:02,269 pues cojo este cachito de código, lo copio 458 00:25:02,269 --> 00:25:06,049 este que pone dentro del main que hay en la clase ventana 459 00:25:06,049 --> 00:25:09,930 pues dentro de este main que hay en la clase ventana, me cojo este cachito de código 460 00:25:09,930 --> 00:25:14,230 que pone crear y mostrar el formulario, lo copio 461 00:25:14,230 --> 00:25:17,650 y lo pego aquí, lo voy a pegar aquí 462 00:25:17,650 --> 00:25:21,329 esto luego ya lo pondría donde corresponde, ahí está 463 00:25:21,329 --> 00:25:25,690 aquí me crea la ventana, bueno me dice algunos errores aquí 464 00:25:25,690 --> 00:25:28,589 mínimos, que de notación 465 00:25:28,589 --> 00:25:30,150 y demás, me da igual, lo dejo ahí 466 00:25:30,150 --> 00:25:32,690 y ahora lo ejecuto, y ahora si lo ejecuto 467 00:25:32,690 --> 00:25:33,829 vais a ver 468 00:25:33,829 --> 00:25:36,630 que ya va a salir la ventanita, va a poner aquí los holamundos 469 00:25:36,630 --> 00:25:37,910 y después de los holamundos 470 00:25:37,910 --> 00:25:45,480 saca la ventana, paciencia 471 00:25:45,480 --> 00:25:47,380 ha puesto los holamundos y aquí está 472 00:25:47,380 --> 00:25:49,920 aquí está la ventana, fijaros que sale con un aspecto 473 00:25:49,920 --> 00:25:51,500 feo, de acuerdo 474 00:25:51,500 --> 00:25:53,500 esto no es el aspecto que sale 475 00:25:53,500 --> 00:25:54,059 en el editor 476 00:25:54,059 --> 00:25:57,519 vale, bueno y aquí me ha puesto 477 00:25:57,519 --> 00:25:59,240 algunos menos y algunos son operativos 478 00:25:59,240 --> 00:26:01,400 Pues este de aquí, Exit, ya funciona. 479 00:26:02,759 --> 00:26:03,019 ¿De acuerdo? 480 00:26:03,279 --> 00:26:05,140 Bueno, fijaos lo primero al aspecto. 481 00:26:05,359 --> 00:26:07,559 El aspecto no era el que me sale aquí. 482 00:26:09,880 --> 00:26:12,059 De entrada, el aspecto, cuando me voy aquí a Diseño 483 00:26:12,059 --> 00:26:14,359 y le doy aquí al ojito para verlo, 484 00:26:15,240 --> 00:26:15,839 no es el mismo. 485 00:26:16,279 --> 00:26:17,539 Este aspecto es más bonito. 486 00:26:17,680 --> 00:26:17,920 ¿Por qué? 487 00:26:18,200 --> 00:26:19,799 Porque hay que ponerle un tema. 488 00:26:20,220 --> 00:26:20,319 ¿Vale? 489 00:26:20,579 --> 00:26:23,119 Vamos a ver cómo se ponen dependencias a un proyecto. 490 00:26:24,240 --> 00:26:25,400 A un proyecto en Maven. 491 00:26:25,400 --> 00:26:27,900 es muy parecido 492 00:26:27,900 --> 00:26:29,380 es muy parecido 493 00:26:29,380 --> 00:26:30,720 a como se hace 494 00:26:30,720 --> 00:26:33,299 en Gradle 495 00:26:33,299 --> 00:26:35,480 es una serie de líneas que tenemos que copiar 496 00:26:35,480 --> 00:26:37,619 en el proyecto principal 497 00:26:37,619 --> 00:26:39,920 ¿dónde está el fichero que define el proyecto? 498 00:26:40,200 --> 00:26:41,339 pues este, donde pone 499 00:26:41,339 --> 00:26:42,740 project files, este que pone pon 500 00:26:42,740 --> 00:26:45,420 xml, le doy, y me sale esto 501 00:26:45,420 --> 00:26:47,420 bueno, vais a ver 502 00:26:47,420 --> 00:26:47,960 que es un xml 503 00:26:47,960 --> 00:26:51,019 aquí tengo que añadir, para meter dependencias 504 00:26:51,019 --> 00:26:52,400 dos líneas 505 00:26:52,400 --> 00:26:55,279 dependencias 506 00:26:55,279 --> 00:26:57,519 así como lo he escrito 507 00:26:57,519 --> 00:27:00,240 vale 508 00:27:00,240 --> 00:27:03,980 ahí está, fijaos que hasta me ha autocompletado 509 00:27:03,980 --> 00:27:06,039 el código, cuando pongo dependencias 510 00:27:06,039 --> 00:27:08,059 dependencias 511 00:27:08,059 --> 00:27:09,740 cuando pongo esto 512 00:27:09,740 --> 00:27:12,079 quiere decir que aquí dentro voy a meter las dependencias 513 00:27:12,079 --> 00:27:13,880 voy a buscarle un tema a las 514 00:27:13,880 --> 00:27:15,819 ventanas, un tema que se suele usar 515 00:27:15,819 --> 00:27:17,480 mucho es este 516 00:27:17,480 --> 00:27:19,839 flatlab, que es el típico de los 517 00:27:19,839 --> 00:27:21,799 bueno, si os fijáis el flatlab 518 00:27:21,799 --> 00:27:23,980 este es el mismo que tiene el editor que estoy usando 519 00:27:23,980 --> 00:27:26,000 ¿no? este tema 520 00:27:26,000 --> 00:27:28,940 es este tema, y tiene incluso 521 00:27:28,940 --> 00:27:29,640 versión oscura 522 00:27:29,640 --> 00:27:32,799 este tema también lo usa 523 00:27:32,799 --> 00:27:34,500 un entorno de desarrollo mucho 524 00:27:34,500 --> 00:27:35,960 que es el Intel IJ 525 00:27:35,960 --> 00:27:38,579 pues voy a añadirle esta dependencia 526 00:27:38,579 --> 00:27:41,119 el FlagLav, para añadirle la dependencia 527 00:27:41,119 --> 00:27:44,259 bueno, bajo para aquí, para abajo 528 00:27:44,259 --> 00:27:45,400 y dice, mira 529 00:27:45,400 --> 00:27:49,119 la dependencia la tengo aquí en Maven Central 530 00:27:49,119 --> 00:27:50,559 si hago clic en Maven Central 531 00:27:50,559 --> 00:27:51,220 le hago clic 532 00:27:51,220 --> 00:27:55,119 me sale esto, ya estoy en Maven Central 533 00:27:55,119 --> 00:28:00,200 Y me dice, venga, para añadir tu proyecto, mira, si estás en Maven, tienes que añadir estas líneas. 534 00:28:00,539 --> 00:28:04,559 Si estuviéramos en Gradle con Kotlin, tendríamos que añadir esta línea. 535 00:28:05,119 --> 00:28:12,400 Bueno, como hemos elegido crear el proyecto con Maven, me cojo estos códigos de aquí, los copios, 536 00:28:13,460 --> 00:28:16,720 me voy aquí a mi proyecto en la parte de dependencias y lo pego. 537 00:28:17,839 --> 00:28:19,460 Esto lo voy a formatear para que quede bonito. 538 00:28:23,210 --> 00:28:24,109 Ahí está, ya queda bonito. 539 00:28:25,269 --> 00:28:27,410 Y ahí ya tengo la dependencia puesta. 540 00:28:27,410 --> 00:28:41,650 ¿Va a funcionar directamente? No. Tengo que añadir una cosa más. Siempre que importo un proyecto, no solo es importarlo, sino añadir más código que me van a decir para que funcione. Tendré que traerlo al proyecto, importarlo y trabajar con él. 541 00:28:41,650 --> 00:28:43,930 fijaos esto que va a ser muy interesante, le voy a dar 542 00:28:43,930 --> 00:28:45,710 de momento 543 00:28:45,710 --> 00:28:46,589 le voy a dar a compilar 544 00:28:46,589 --> 00:28:48,869 para que me baje la dependencia 545 00:28:48,869 --> 00:28:53,000 le doy a compilar para que me baje la dependencia 546 00:28:53,000 --> 00:28:54,920 simplemente me interesa que me baje la dependencia 547 00:28:54,920 --> 00:28:57,200 y ahora vamos a ver cuando me baje la dependencia 548 00:28:57,200 --> 00:28:58,640 bueno, dejo ahí que se baje la dependencia 549 00:28:58,640 --> 00:28:59,980 se está bajando la dependencia 550 00:28:59,980 --> 00:29:03,019 y mientras se la baja, voy a ver cómo se usa 551 00:29:03,019 --> 00:29:04,220 me tengo que ir siempre 552 00:29:04,220 --> 00:29:06,440 a la página del manual 553 00:29:06,440 --> 00:29:08,420 de la biblioteca para ver cómo se usa 554 00:29:08,420 --> 00:29:10,099 y me dicen que simplemente que añade 555 00:29:10,099 --> 00:29:12,880 esta línea, hay que añadir esta línea 556 00:29:13,680 --> 00:29:14,000 ¿De acuerdo? 557 00:29:14,279 --> 00:29:17,440 La tengo aquí en esta página y tengo que añadir esta línea. 558 00:29:17,519 --> 00:29:18,160 La voy a añadir. 559 00:29:19,799 --> 00:29:20,900 Me va a dar un error. 560 00:29:21,019 --> 00:29:21,900 Me interesa que me dé el error. 561 00:29:22,799 --> 00:29:23,220 La añado. 562 00:29:23,440 --> 00:29:24,039 Y me da un error. 563 00:29:24,220 --> 00:29:24,599 Error. 564 00:29:25,519 --> 00:29:25,799 ¿Por qué? 565 00:29:25,900 --> 00:29:27,799 Porque no he importado la biblioteca. 566 00:29:28,579 --> 00:29:33,079 He añadido el módulo al proyecto Maven, pero la biblioteca no la he importado. 567 00:29:33,140 --> 00:29:34,039 La tengo que importar. 568 00:29:34,039 --> 00:29:35,259 Bueno, pues me pincho aquí. 569 00:29:38,089 --> 00:29:39,670 Me dice, no puedo encontrar el símbolo. 570 00:29:40,150 --> 00:29:40,609 Doy aquí. 571 00:29:41,690 --> 00:29:42,269 A ver, espera. 572 00:29:43,309 --> 00:29:43,750 Hazme caso. 573 00:29:44,430 --> 00:29:44,670 Aquí. 574 00:29:44,829 --> 00:30:10,950 Pues me dice, mira, ¿puedes añadir el import? Ah, pues lo añado. Lo añado. Vais a ver que me ha añadido aquí el import. ¿De acuerdo? Y además me ha añadido el import correcto. Si ahora le doy a ejecutar, vais a ver que ya sale la aplicación. Le he dado a ejecutar. Un poco de paciencia. Y ya me va a salir la aplicación. Espero que me salga la aplicación. 575 00:30:10,950 --> 00:30:14,109 He puesto los Hello World, ¿veis? 576 00:30:14,210 --> 00:30:15,950 Y ya me sale con la apariencia correcta. 577 00:30:17,089 --> 00:30:17,630 ¿De acuerdo? 578 00:30:18,349 --> 00:30:19,369 ¿Tengo más apariencias? 579 00:30:19,490 --> 00:30:20,250 Sí, mirad. 580 00:30:20,930 --> 00:30:21,930 Tengo más apariencias. 581 00:30:22,069 --> 00:30:23,450 Fijaos que ahí pone un tema oscuro. 582 00:30:23,849 --> 00:30:24,769 Voy a poner el tema oscuro. 583 00:30:24,990 --> 00:30:27,329 Por, con, punto. 584 00:30:27,450 --> 00:30:27,990 Voy copiando. 585 00:30:28,089 --> 00:30:29,490 Lo que voy a hacer es copiar esto. 586 00:30:30,329 --> 00:30:31,269 Tal cual viene arriba. 587 00:30:34,880 --> 00:30:35,859 Hasta que el momento complete. 588 00:30:36,000 --> 00:30:36,920 Y aquí tengo los temas. 589 00:30:37,400 --> 00:30:38,740 Mira, tengo aquí el tema de Árcula. 590 00:30:40,319 --> 00:30:40,819 ¿De acuerdo? 591 00:30:41,220 --> 00:30:42,759 Ahora mismo estoy usando el tema Like. 592 00:30:42,759 --> 00:30:43,480 Este de aquí. 593 00:30:43,799 --> 00:30:45,579 ¿Vale? Pero tengo el tema 594 00:30:45,579 --> 00:30:47,599 Darkula, pues lo importo 595 00:30:47,599 --> 00:30:49,440 Que es el tema oscuro 596 00:30:49,440 --> 00:30:51,700 Control-C y ahora aquí me copio 597 00:30:51,700 --> 00:30:53,259 Esta línea, este cachito de aquí 598 00:30:53,259 --> 00:30:55,559 Y para usar 599 00:30:55,559 --> 00:30:56,299 El tema Darkula 600 00:30:56,299 --> 00:30:58,460 Lo pongo aquí 601 00:30:58,460 --> 00:31:00,259 Pongo el setup 602 00:31:00,259 --> 00:31:04,480 Y esta línea la comento 603 00:31:04,480 --> 00:31:05,819 Porque si no se puede liar 604 00:31:05,819 --> 00:31:07,759 ¿De acuerdo? 605 00:31:08,859 --> 00:31:11,059 ¿Vale? Según he comentado 606 00:31:11,059 --> 00:31:12,740 Esta línea vais a ver que aquí arriba me dice 607 00:31:12,740 --> 00:31:14,720 Oye, que este imporna lo estás usando 608 00:31:14,720 --> 00:31:16,299 pues lo voy a comentar 609 00:31:16,299 --> 00:31:18,819 estas cosas que no uso al final 610 00:31:18,819 --> 00:31:20,779 se suelen limpiar, o sea cuando ya 611 00:31:20,779 --> 00:31:22,839 haces la refactorización limpias este código 612 00:31:22,839 --> 00:31:24,619 que no usas, porque esto pueden ser pruebas 613 00:31:24,619 --> 00:31:26,559 vamos a ver como queda el tema oscuro 614 00:31:26,559 --> 00:31:28,740 vamos a ver como 615 00:31:28,740 --> 00:31:30,880 queda el tema oscuro, que este suele ser 616 00:31:30,880 --> 00:31:32,700 el típico que usan todos los 617 00:31:32,700 --> 00:31:33,940 editores de desarrollo 618 00:31:33,940 --> 00:31:36,640 de hecho al NetBeans se le puede poner 619 00:31:36,640 --> 00:31:38,559 perfectamente el tema oscuro, hay una opción por ahí 620 00:31:38,559 --> 00:31:40,940 de aquí en 621 00:31:40,940 --> 00:31:42,740 configurar, que le puedes poner 622 00:31:42,740 --> 00:31:44,660 el tema oscuro, veis le hemos puesto el tema oscuro, le voy a dejar 623 00:31:44,660 --> 00:31:54,740 el tema oscuro. Bueno, de momento hemos creado una ventana, vale, muy bien, muy bonito, pero esto cómo se usa. Vamos a verlo. Bueno, aquí tengo mi ventana. 624 00:31:55,700 --> 00:32:10,240 Una cosa curiosa, si vamos a un elemento y le hacemos doble clic, me salta a la función que se ejecuta cuando le hago clic. O sea, si yo hago clic sobre un elemento, 625 00:32:10,240 --> 00:32:11,859 por ejemplo ese menú 626 00:32:11,859 --> 00:32:14,380 va a ejecutar una función 627 00:32:14,380 --> 00:32:16,619 y en este caso para ese menú es esta 628 00:32:16,619 --> 00:32:18,359 que simplemente lo que está haciendo es un 629 00:32:18,359 --> 00:32:19,400 system.exit 630 00:32:19,400 --> 00:32:23,000 lo que hace es que corta, para la ejecución 631 00:32:23,000 --> 00:32:24,839 y devuelve al sistema operativo 632 00:32:24,839 --> 00:32:26,740 este código, en este caso 633 00:32:26,740 --> 00:32:28,859 un 0, lo habitual es 634 00:32:28,859 --> 00:32:30,660 devolver el código 0, el código 0 635 00:32:30,660 --> 00:32:32,400 es que no se han producido errores en la ejecución 636 00:32:32,400 --> 00:32:34,640 si devuelvo un código 1, 2, 3 637 00:32:34,640 --> 00:32:36,519 le estoy diciendo al sistema operativo que 638 00:32:36,519 --> 00:32:38,500 la aplicación ha parado 639 00:32:38,500 --> 00:32:41,140 con errores, y el error va a ser el 1, el 2 640 00:32:41,140 --> 00:32:43,099 o el 3, o el número que yo ponga ahí 641 00:32:43,099 --> 00:32:44,960 ese número va a tener significado 642 00:32:44,960 --> 00:32:46,900 para el programador, yo tengo que asignarle valores 643 00:32:46,900 --> 00:32:48,160 a esos números, ¿de acuerdo? 644 00:32:51,019 --> 00:32:53,359 por supuesto, a cualquier elemento del menú 645 00:32:53,359 --> 00:32:56,450 a cualquier elemento del menú 646 00:32:56,450 --> 00:32:59,250 si hago doble clic 647 00:32:59,250 --> 00:33:01,170 doble clic, aquí está 648 00:33:01,170 --> 00:33:03,150 ¿vale? pues me añade la función 649 00:33:03,150 --> 00:33:05,650 esa función no estaba creada, y aquí me añade 650 00:33:05,650 --> 00:33:07,089 la función para la acción 651 00:33:07,089 --> 00:33:09,349 como he hecho clic sobre el menú 652 00:33:09,349 --> 00:33:11,089 about, pues aquí pondría 653 00:33:11,089 --> 00:33:12,970 lo que quiero que se haga en el menú 654 00:33:12,970 --> 00:33:14,509 de about, pues un system 655 00:33:14,509 --> 00:33:16,789 out 656 00:33:16,789 --> 00:33:18,569 print 657 00:33:18,569 --> 00:33:20,509 en un momento voy a hacer 658 00:33:20,509 --> 00:33:23,029 un system out print que se haga por consola 659 00:33:23,029 --> 00:33:23,950 no voy a hacer nada más 660 00:33:23,950 --> 00:33:25,210 que diga 661 00:33:25,210 --> 00:33:28,089 about, vale 662 00:33:28,089 --> 00:33:30,210 o sea, cuando hago clic en el menú about 663 00:33:30,210 --> 00:33:32,069 en consola va a poner about 664 00:33:32,069 --> 00:33:36,589 le doy run, lo ejecuto 665 00:33:36,589 --> 00:33:40,619 paciencia 666 00:33:40,619 --> 00:33:43,000 fijaos que no puedo tocar las partes en gris 667 00:33:43,000 --> 00:33:47,339 no me deja de editor, ¿vale? 668 00:33:48,039 --> 00:33:49,420 tal, y ahora si voy a 669 00:33:49,420 --> 00:33:51,160 hell y pincho en about 670 00:33:51,160 --> 00:33:52,759 lo veis que ha puesto aquí about, ¿no? 671 00:33:53,240 --> 00:33:54,240 lo veis aquí que ha puesto about 672 00:33:54,240 --> 00:33:57,220 aquí en mi ventanita, hell 673 00:33:57,220 --> 00:33:59,480 about, me pone about, ¿vale? 674 00:33:59,519 --> 00:34:01,180 ahí podría hacer una operación o lo que sea 675 00:34:01,180 --> 00:34:02,500 ¿de acuerdo? 676 00:34:03,359 --> 00:34:05,640 esta ventana sigue sin hacer cosas interesantes 677 00:34:05,640 --> 00:34:06,299 bueno 678 00:34:06,299 --> 00:34:09,559 le doy aquí escape, me cierro esto 679 00:34:09,559 --> 00:34:11,480 eso es, ¿vale? bueno, ¿qué cosas 680 00:34:11,480 --> 00:34:13,460 qué elementos puedo añadir aquí a la ventana? 681 00:34:13,460 --> 00:34:16,880 Pues puedo añadir bastantes. Esto me tengo que ir al menú de Swing. 682 00:34:17,079 --> 00:34:22,880 O sea, hay un tutorial de Swing. Si nos buscamos aquí a Google 683 00:34:22,880 --> 00:34:27,599 y buscamos Swing Java 684 00:34:27,599 --> 00:34:31,579 Tutorial. De cómo hacer aplicaciones 685 00:34:31,579 --> 00:34:39,510 en Swing. A ver... Bueno, el habitual, bueno, ahí tengo un curso 686 00:34:39,510 --> 00:34:42,409 pero el habitual es el de Oracle. Este. El de Oracle 687 00:34:42,409 --> 00:34:47,210 este es el clásico. Este es el tutorial 688 00:34:47,210 --> 00:34:51,369 de toda la vida, el que se ha usado, y aquí me dice pues todos los elementos 689 00:34:51,369 --> 00:34:55,289 de swing, como hacer un drag and drop, un drag and drop es arrastrar y soltar un fichero 690 00:34:55,289 --> 00:34:59,590 por ejemplo, los distintos componentes de swing 691 00:34:59,590 --> 00:35:02,590 ¿de acuerdo? ¿cómo usarlo con NetBeans? 692 00:35:03,030 --> 00:35:07,050 que eso ya lo estamos usando, ¿vale? pues aquí, modificar la vista 693 00:35:07,050 --> 00:35:11,030 el aspecto, que es lo que estamos haciendo, y me dice aquí distintos 694 00:35:11,030 --> 00:35:14,989 elementos, ¿vale? pues aquí en Agatiz Startup 695 00:35:14,989 --> 00:35:17,590 Te da una primera lección de cómo usar Swing. 696 00:35:20,349 --> 00:35:23,369 Bueno, pues el típico menú, el típico tutorial es este. 697 00:35:23,590 --> 00:35:24,969 Aquí me tengo que aprender cómo se usa. 698 00:35:25,909 --> 00:35:29,650 Vamos a aprender dos elementos que son muy fáciles, bueno, tres elementos que son muy fáciles de usar. 699 00:35:30,849 --> 00:35:33,590 Tenemos el label, la etiqueta. 700 00:35:34,349 --> 00:35:37,429 Bueno, cuando quiero añadir un elemento simplemente lo arrastro y lo suelto. 701 00:35:37,670 --> 00:35:38,590 Y lo voy a poner ahí. 702 00:35:39,269 --> 00:35:40,349 Bueno, imaginaos que lo pongo por aquí. 703 00:35:41,349 --> 00:35:45,570 De acuerdo, si le doy a previsualizar, vas a ver que lo trata de mantener ahí. 704 00:35:47,070 --> 00:35:49,489 ¿Veis que si cambio el tamaño, él trata de mantenerlo ahí? 705 00:35:49,590 --> 00:35:50,369 ¿Veis? Incluso lo tapa. 706 00:35:53,380 --> 00:35:56,000 Si me lo llevo a un borde, vais a ver que aparecen unas líneas de guía. 707 00:35:56,119 --> 00:35:59,039 Y si lo pego a la línea de... ¿Veis que ya han aparecido las líneas de guía? 708 00:35:59,300 --> 00:36:03,539 Si la pego a la línea de guía de arriba, se ve mejor que la de abajo. 709 00:36:03,900 --> 00:36:05,699 Si la pego a la línea de línea de abajo, 710 00:36:08,059 --> 00:36:11,099 significa que cuando yo cambio el tamaño de la ventana, en lugar de desaparecer, 711 00:36:11,199 --> 00:36:13,380 ¿lo veis que la sigue? Sigue el tamaño de la ventana. 712 00:36:15,460 --> 00:36:18,039 Si la pego aquí, ahí, 713 00:36:19,380 --> 00:36:20,719 pues la ha pegado en esa posición. 714 00:36:20,719 --> 00:36:25,099 Pues va a tratar de mantener esa posición cuando cambie la ventana, que esa posición es fácil de mantener. 715 00:36:25,619 --> 00:36:32,300 Más cosas. Si le hago doble, bueno, si le hago botón derecho, puedo cambiar el texto, porque he añadido un label. 716 00:36:32,559 --> 00:36:39,380 Un label es una etiqueta, simplemente muestra texto. Pues voy a poner aquí, precio. 717 00:36:40,460 --> 00:36:45,980 Voy a hacer una pequeña aplicación que yo le meta un precio y me devuelva el IVA, el precio con el IVA. 718 00:36:45,980 --> 00:37:03,010 Intro, ¿vale? Y aquí tengo la variable. Si os fijáis, aquí ha aparecido, bueno, aquí tengo los distintos elementos de mi ventana, y aquí ha aparecido este, el JLabel. Le puedo cambiar el nombre y es interesante cambiarle el nombre a la variable. 719 00:37:03,010 --> 00:37:05,250 change variable name 720 00:37:05,250 --> 00:37:08,190 hay algunos que no interesa 721 00:37:08,190 --> 00:37:10,409 este por ejemplo lo podría haber dejado sin cambiar 722 00:37:10,409 --> 00:37:11,849 ¿de acuerdo? 723 00:37:13,050 --> 00:37:13,530 pero 724 00:37:13,530 --> 00:37:16,210 por ejemplo 725 00:37:16,210 --> 00:37:18,110 le puedo cambiar su nombre a 726 00:37:18,110 --> 00:37:20,190 preciolabel y ahora cuando vaya a java 727 00:37:20,190 --> 00:37:22,309 si me quiero referir a este elemento tengo que 728 00:37:22,309 --> 00:37:23,949 poner preciolabel, o sea 729 00:37:23,949 --> 00:37:26,190 aquí en el código fuente cuando por alguna 730 00:37:26,190 --> 00:37:28,090 razón me quiera referir ahí tengo que poner 731 00:37:28,090 --> 00:37:31,699 preciolabel ¿vale? de momento 732 00:37:31,699 --> 00:37:32,420 no voy a usar ese 733 00:37:32,420 --> 00:37:36,159 el campo de texto. 734 00:37:36,280 --> 00:37:38,119 El campo de texto es para meter, pues, texto. 735 00:37:38,880 --> 00:37:40,719 Entonces, me voy a ponerlo aquí 736 00:37:40,719 --> 00:37:42,260 siguiendo las líneas de guía 737 00:37:42,260 --> 00:37:44,440 que lo ponga ahí pegado arriba 738 00:37:44,440 --> 00:37:45,860 y pegado al siguiente elemento. 739 00:37:46,039 --> 00:37:46,860 Este ya se me ha ido. 740 00:37:48,039 --> 00:37:49,320 Al soltar el clic se me ha ido. 741 00:37:49,820 --> 00:37:50,139 Ahí está. 742 00:37:50,500 --> 00:37:52,039 Si os habéis fijado las dos líneas de guía 743 00:37:52,039 --> 00:37:53,360 le he puesto que lo ponga arriba 744 00:37:53,360 --> 00:37:54,340 y pegado a este elemento. 745 00:37:54,980 --> 00:37:57,039 Incluso puedo coger y estirar esta. 746 00:37:57,420 --> 00:37:58,699 Es que le puedo cambiar el tamaño. 747 00:37:58,699 --> 00:38:00,820 Y le voy a tratar de pegar a la otra línea de guía. 748 00:38:01,400 --> 00:38:01,639 De aquí. 749 00:38:01,639 --> 00:38:03,019 eso es, ¿vale? 750 00:38:05,380 --> 00:38:07,659 así, como lo he pegado a esta línea de guía 751 00:38:07,659 --> 00:38:09,500 de aquí, cuando amplio el tamaño de la 752 00:38:09,500 --> 00:38:11,619 ventana, veis que el elemento se amplía 753 00:38:11,619 --> 00:38:13,619 si no lo hubiese pegado a esa línea de guía 754 00:38:13,619 --> 00:38:15,440 pues mantendría su tamaño 755 00:38:15,440 --> 00:38:18,820 bueno, le voy a cambiar aquí, a esta sí que 756 00:38:18,820 --> 00:38:22,210 necesito cambiarle el nombre, la vamos 757 00:38:22,210 --> 00:38:23,050 a llamar 758 00:38:23,050 --> 00:38:30,210 precio test fill 759 00:38:30,210 --> 00:38:31,409 conviene mantener 760 00:38:31,409 --> 00:38:33,969 el tipo de dato, ¿eh? esto es un 761 00:38:33,969 --> 00:38:35,929 test fill, pues conviene mantener 762 00:38:35,929 --> 00:38:37,590 el tipo de dato, pues sabes lo que estás manejando 763 00:38:37,590 --> 00:38:39,250 y le voy a cambiar aquí también 764 00:38:39,250 --> 00:38:41,570 el texto, voy a poner 0 765 00:38:41,570 --> 00:38:43,769 ¿de acuerdo? 766 00:38:44,550 --> 00:38:46,050 y ahora voy a añadir otro 767 00:38:46,050 --> 00:38:47,309 bueno, un botón 768 00:38:47,309 --> 00:38:49,690 ¿dónde está el botón? aquí, botón 769 00:38:49,690 --> 00:38:52,590 el botón que lo voy a poner 770 00:38:52,590 --> 00:38:55,340 aquí 771 00:38:55,340 --> 00:38:57,400 lo he pegado hasta dos líneas de guía 772 00:38:57,400 --> 00:38:59,300 le voy a cambiar el nombre 773 00:38:59,300 --> 00:39:04,500 a la variable, le voy a llamar 774 00:39:04,500 --> 00:39:05,340 calcular 775 00:39:05,340 --> 00:39:11,159 calcular 776 00:39:11,159 --> 00:39:13,739 y le voy a cambiar el texto por supuesto 777 00:39:13,739 --> 00:39:17,380 calcular 778 00:39:17,380 --> 00:39:19,340 iba 779 00:39:19,340 --> 00:39:22,840 ¿de acuerdo? y ahora me falta un último 780 00:39:22,840 --> 00:39:24,559 label que es donde voy a mostrar el resultado 781 00:39:24,559 --> 00:39:28,289 lo vamos a poner 782 00:39:28,289 --> 00:39:31,300 ahí 783 00:39:31,300 --> 00:39:35,000 ¿de acuerdo? los labels solamente sirven 784 00:39:35,000 --> 00:39:36,780 para mostrar texto, pues ahí 785 00:39:36,780 --> 00:39:37,940 voy a mostrar el resultado 786 00:39:37,940 --> 00:39:43,340 resultado 787 00:39:43,340 --> 00:39:46,860 resultado 788 00:39:46,860 --> 00:39:48,920 y aquí voy a poner, le voy a volver a cambiar 789 00:39:48,920 --> 00:39:49,860 el nombre a la variable 790 00:39:49,860 --> 00:39:55,699 label, resultado 791 00:39:55,699 --> 00:39:57,800 bueno 792 00:39:57,800 --> 00:40:00,280 hay una cosa en la que no me he estado fijando 793 00:40:00,280 --> 00:40:02,179 que son las propiedades de los objetos 794 00:40:02,179 --> 00:40:04,300 que así que me va a interesar 795 00:40:04,300 --> 00:40:04,920 tocarlas 796 00:40:04,920 --> 00:40:07,960 bueno, aquí tengo más elementos 797 00:40:07,960 --> 00:40:09,900 eso luego voy a usar ayuda, pero por ejemplo 798 00:40:09,900 --> 00:40:12,219 tengo un campo para introducir contraseñas 799 00:40:12,219 --> 00:40:13,739 una barra de progreso 800 00:40:13,739 --> 00:40:18,159 el textarea, bueno tengo el textfield 801 00:40:18,159 --> 00:40:19,659 y el textarea, el textarea es para meter 802 00:40:19,659 --> 00:40:22,340 textfield es meter una línea 803 00:40:22,340 --> 00:40:24,219 de texto, y el textarea es meter 804 00:40:24,219 --> 00:40:25,960 muchas líneas de texto, esto es lo que usaría 805 00:40:25,960 --> 00:40:27,420 para hacer un editor de texto 806 00:40:27,420 --> 00:40:30,119 Los típicos combo box, estos son los desplegables 807 00:40:30,119 --> 00:40:32,000 Los botones de encender 808 00:40:32,000 --> 00:40:34,079 Bueno, los checkbox, que son los botones 809 00:40:34,079 --> 00:40:35,980 De encender y apagar, ¿de acuerdo? 810 00:40:37,300 --> 00:40:38,079 ¿Vale? Los típicos 811 00:40:38,079 --> 00:40:38,880 Botones de check 812 00:40:38,880 --> 00:40:41,880 Y aquí tengo 813 00:40:41,880 --> 00:40:43,820 Bueno, más elementos, y luego tengo incluso 814 00:40:43,820 --> 00:40:45,639 Otros elementos de aquí arriba, los containers 815 00:40:45,639 --> 00:40:47,639 Que son elementos para contener a otros elementos 816 00:40:47,639 --> 00:40:48,920 O sea, por ejemplo 817 00:40:48,920 --> 00:40:51,219 El split panel es muy típico 818 00:40:51,219 --> 00:40:53,139 Tengo aquí un ejemplo de split panel 819 00:40:53,139 --> 00:40:57,639 Tengo aquí un ejemplo de split panel que voy a enseñar 820 00:40:57,639 --> 00:41:00,619 A ver 821 00:41:00,619 --> 00:41:02,860 Ah, por eso yo tenía el marcador 822 00:41:02,860 --> 00:41:06,579 Aquí tengo otro ejemplo 823 00:41:06,579 --> 00:41:10,340 Esto es un split panel 824 00:41:10,340 --> 00:41:12,699 Es el típico elemento, ¿veis? 825 00:41:13,820 --> 00:41:14,619 Esto es un split panel 826 00:41:14,619 --> 00:41:16,099 Le he puesto dos botones 827 00:41:16,099 --> 00:41:20,760 Y es para cambiar el tamaño de uno y otro 828 00:41:20,760 --> 00:41:23,159 O sea, aquí metería elementos, aquí metería más elementos 829 00:41:23,159 --> 00:41:25,780 Y con esto le cambio el tamaño 830 00:41:25,780 --> 00:41:27,460 Este es el split panel 831 00:41:27,460 --> 00:41:28,400 Bueno 832 00:41:28,400 --> 00:41:31,659 Bueno, volvemos a nuestro proyecto 833 00:41:31,659 --> 00:41:33,360 Tengo el resultado, venga, ya 834 00:41:33,360 --> 00:41:53,579 Ya tengo todos mis elementos. Ahora, quiero que me calcule el IVA. Pues en calcular IVA, este botón, hago doble clic y al hacer doble clic me queda, me crea una función que me dice, bueno, to do significa por hacer. Esto realmente debería ir separado. Por hacer, oye, añade aquí tu código. 835 00:41:53,579 --> 00:42:07,079 Siempre que veis aquí un todo, los todos, siempre que veis todos, es que son mensajes que te suelta el editor o tú mismo como programador de, oye, que te falta por hacer esto. Bueno, pues aquí te falta calcular la función. Vamos a ver cómo se usan los elementos. 836 00:42:07,079 --> 00:42:10,340 fijaros, el texto 837 00:42:10,340 --> 00:42:12,300 el texto 838 00:42:12,300 --> 00:42:14,239 que mete el usuario, lo estamos metiendo aquí 839 00:42:14,239 --> 00:42:15,880 en esta cosita, ¿no? en el precio 840 00:42:15,880 --> 00:42:18,420 text field, pues venga, pongo aquí 841 00:42:18,420 --> 00:42:22,079 precio 842 00:42:22,079 --> 00:42:31,579 test, hay que malescribir 843 00:42:31,579 --> 00:42:32,739 field 844 00:42:32,739 --> 00:42:37,219 punto, vale 845 00:42:37,219 --> 00:42:39,260 y ahora, me sale 846 00:42:39,260 --> 00:42:41,260 como es un objeto 847 00:42:41,260 --> 00:42:43,460 me está mostrando todas las 848 00:42:43,460 --> 00:42:45,400 funciones o todos los métodos que tiene ese objeto 849 00:42:45,400 --> 00:42:47,480 me interesa uno que se llama get test 850 00:42:47,480 --> 00:42:49,280 O sea, conseguir el texto que se está 851 00:42:49,280 --> 00:42:50,559 Está escrito, me interesa 852 00:42:50,559 --> 00:42:53,280 De los campos de texto me interesan 853 00:42:53,280 --> 00:42:55,679 Dos campos, el gettest y el settest 854 00:42:55,679 --> 00:43:00,070 Ay, se me ha olvidado una cosa 855 00:43:00,070 --> 00:43:01,070 Me salta una cosa, bueno 856 00:43:01,070 --> 00:43:03,170 Lo cuento al final 857 00:43:03,170 --> 00:43:04,690 Que va a quedar más bonito 858 00:43:04,690 --> 00:43:12,070 Pues busco gettest, casi lo escribo y tardo menos 859 00:43:12,070 --> 00:43:15,409 Los programadores somos así de bajos 860 00:43:15,409 --> 00:43:20,369 Ahí está, gettest 861 00:43:20,369 --> 00:43:23,650 Gettest devuelve lo que ha escrito el usuario 862 00:43:23,650 --> 00:43:25,349 El texto se devuelve siempre 863 00:43:25,349 --> 00:43:29,670 en stream, ¿vale? Los usuarios siempre meten texto, el ordenador 864 00:43:29,670 --> 00:43:31,309 entiende texto, esto va a ser el texto 865 00:43:31,309 --> 00:43:39,170 que me ha introducido el usuario, ¿de acuerdo? Es buena idea 866 00:43:39,170 --> 00:43:45,929 hacerle un trim, trim significa quitar los espacios en blanco del principio 867 00:43:45,929 --> 00:43:48,929 y del final, ¿de acuerdo? El usuario cuando escribe 868 00:43:48,929 --> 00:43:53,989 mete mucha porquería, entonces lo primero que vamos a hacer es a lo que meta 869 00:43:53,989 --> 00:43:57,929 el usuario le hago un trim para que me quite esos espacios en blanco que va a meter muchas veces 870 00:43:57,929 --> 00:44:02,090 el usuario. O sea, si yo ahora, por ejemplo, me voy aquí a diseño e intento 871 00:44:02,090 --> 00:44:05,969 ver la aplicación, pues llega el usuario y puede hacer esto. 872 00:44:06,130 --> 00:44:09,829 Meter aquí un montón de espacios y ya el número. ¿De acuerdo? Pues estos 873 00:44:09,829 --> 00:44:13,929 espacios del principio o del final no me 874 00:44:13,929 --> 00:44:17,469 interesan. Esto de aquí no me interesa. Entonces le hago un trim. 875 00:44:20,260 --> 00:44:25,119 Le hago un trim. ¿De acuerdo? Tengo el texto. Vale. 876 00:44:25,119 --> 00:44:28,599 Me está diciendo ahora mismo que esta variable la he puesto en 877 00:44:28,599 --> 00:44:32,039 en su radio en amarillo, me dice que nunca ha sido usada. 878 00:44:32,539 --> 00:44:35,360 Vale. La voy a convertir a float. 879 00:44:36,400 --> 00:44:38,000 Tipo float. A texto. 880 00:44:39,420 --> 00:44:40,340 Que esto va a ser el precio. 881 00:44:41,280 --> 00:44:42,159 Y voy a hacer un parse. 882 00:44:44,760 --> 00:44:48,820 Tengo que convertir el texto a un número. 883 00:44:49,400 --> 00:44:56,989 Vale. Pues se hace con float.parseFloat. 884 00:44:57,070 --> 00:44:58,150 Ahí lo veis. Lo veis ahí, ¿no? 885 00:45:00,800 --> 00:45:01,159 ParseFloat. 886 00:45:02,820 --> 00:45:03,559 Y el texto. 887 00:45:03,559 --> 00:45:06,500 Bueno, fíjate que él mismo se ha dado cuenta de que tengo que meterle el texto. 888 00:45:07,460 --> 00:45:10,179 Fijaos que ya me está saliendo aquí una cosa en amarillo. 889 00:45:11,219 --> 00:45:11,780 ¿De acuerdo? 890 00:45:13,119 --> 00:45:14,980 Vale, ya me está diciendo aquí cosas en amarillo. 891 00:45:17,170 --> 00:45:19,449 Vale, pues mira, me dice que la variable texto nunca ha sido usada. 892 00:45:20,050 --> 00:45:21,969 Ahora me va a decir más cosas cuando la use. 893 00:45:22,130 --> 00:45:24,909 Bueno, no quería borrar. 894 00:45:26,530 --> 00:45:27,750 Ahora voy a calcular el IVA. 895 00:45:29,349 --> 00:45:35,659 Flat precio con IVA. 896 00:45:36,519 --> 00:45:43,119 Pues el precio con IVA es coger el precio y multiplicar por 1.21. 897 00:45:43,460 --> 00:45:44,440 Ya tengo el precio con IVA. 898 00:45:45,440 --> 00:45:45,780 ¿De acuerdo? 899 00:45:46,079 --> 00:45:48,280 Y ahora, quiero mostrar el resultado. 900 00:45:48,679 --> 00:45:50,480 ¿El resultado dónde lo voy a mostrar? 901 00:45:51,079 --> 00:45:55,539 Bueno, si os fijáis en mi diseño que he hecho, tengo aquí este label. 902 00:45:56,800 --> 00:45:58,719 Este label de aquí, que es el resultado label. 903 00:45:59,099 --> 00:46:00,599 Pues lo quiero mostrar en resultado label. 904 00:46:00,599 --> 00:46:04,320 Pues me tengo que ir aquí y poner aquí. 905 00:46:04,320 --> 00:46:06,340 resultado 906 00:46:06,340 --> 00:46:08,139 resultado 907 00:46:08,139 --> 00:46:11,300 label, punto, y hay una opción 908 00:46:11,300 --> 00:46:13,119 que se llama setTest. 909 00:46:14,380 --> 00:46:15,280 Esto lo voy a escribir 910 00:46:15,280 --> 00:46:16,820 para no... 911 00:46:16,820 --> 00:46:18,360 setTest, ahí lo tenemos. 912 00:46:19,059 --> 00:46:19,500 setTest 913 00:46:19,500 --> 00:46:22,860 Si espero un poquito me suelta la ayuda. 914 00:46:23,559 --> 00:46:24,800 Bueno, está tardando mucho. 915 00:46:26,139 --> 00:46:27,079 Vale, bueno, pues 916 00:46:27,079 --> 00:46:28,780 ahí en esa ventana me debería salir la ayuda. 917 00:46:30,059 --> 00:46:30,719 Bueno, setTest 918 00:46:30,719 --> 00:46:31,800 y aquí voy a poner 919 00:46:31,800 --> 00:46:37,949 el precio 920 00:46:37,949 --> 00:46:40,659 con 921 00:46:40,659 --> 00:46:42,199 ay 922 00:46:42,199 --> 00:46:45,519 se me ha ido el, como tengo un 923 00:46:45,519 --> 00:46:46,980 top patch, se me ha ido 924 00:46:46,980 --> 00:46:49,480 vale, precio con IVA 925 00:46:49,480 --> 00:46:51,840 ¿de acuerdo? voy a borrar toda esta porquería 926 00:46:51,840 --> 00:46:55,280 lo pongo bonito 927 00:46:55,280 --> 00:46:57,380 no sé 928 00:46:57,380 --> 00:46:57,840 por qué 929 00:46:57,840 --> 00:47:00,719 me lo sigue marcando 930 00:47:00,719 --> 00:47:11,050 ¿por qué me lo marca? ah, vale 931 00:47:11,050 --> 00:47:11,869 que esto es un double 932 00:47:11,869 --> 00:47:15,230 vale, se me estaba diciendo 933 00:47:15,230 --> 00:47:32,619 Oye, mira, que el 1.21 es un W. Pues mira, le estoy indicando que el 1.21 lo quiero que lo coja como float. Vale. Bueno, me pone aquí que si quiero mejorar el código y demás. De momento lo dejo aquí. Vale, vamos a ver mi aplicación. 934 00:47:32,619 --> 00:47:59,260 ¿Por qué he puesto las comillas estas? ¿Por qué le he sumado las comillas? Porque me quiero, estos, fijaos que ese test admite un string, ¿de acuerdo? Y claro, precio con IVA es un float, si le meto directamente el float, si me cargo esto, vais a ver que genera un error, me dice, oye, que esto es un string, que no puedo convertir un float a un string, pues lo que hago es que le sumo unas comillas para que convierta el float a string. 935 00:47:59,260 --> 00:48:02,059 Vamos a ver esto funcionando, mi maravillosa aplicación 936 00:48:02,059 --> 00:48:04,199 Me quedan dos cositas 937 00:48:04,199 --> 00:48:07,969 A ver si no explota 938 00:48:07,969 --> 00:48:12,110 Bueno, vais a ver que programar con un IDE 939 00:48:12,110 --> 00:48:13,969 Es muy fácil, a los novatos 940 00:48:13,969 --> 00:48:16,389 Se les suele recomendar lo contrario, programar sin IDE 941 00:48:16,389 --> 00:48:18,389 Porque como te hice todos los errores 942 00:48:18,389 --> 00:48:22,199 Pues... 943 00:48:22,199 --> 00:48:23,860 Ah, mira, de hecho me va a interesar 944 00:48:23,860 --> 00:48:25,420 Mostraros esto 945 00:48:25,420 --> 00:48:28,239 Bueno, aquí tengo la consola 946 00:48:28,239 --> 00:48:29,679 Y nos fijamos en la consola 947 00:48:29,679 --> 00:48:31,280 Vamos a calcular los precios con IVA 948 00:48:31,280 --> 00:48:34,119 El IVA de 100, vamos a ver si lo he hecho bien 949 00:48:34,119 --> 00:48:36,179 pincho aquí en calcular IVA 950 00:48:36,179 --> 00:48:37,940 y cuando pincho en calcular IVA 951 00:48:37,940 --> 00:48:39,019 me pone, ¿lo habéis visto? 952 00:48:40,199 --> 00:48:41,000 que ha puesto aquí el precio 953 00:48:41,000 --> 00:48:43,260 ¿de acuerdo? ¿qué es lo que ha hecho? 954 00:48:43,679 --> 00:48:45,460 al hacer click sobre el botón 955 00:48:45,460 --> 00:48:47,500 me ha ejecutado esta función 956 00:48:47,500 --> 00:48:49,860 me ha ejecutado este cachito de código 957 00:48:49,860 --> 00:48:51,980 que he puesto aquí, ¿qué está haciendo este cachito de código? 958 00:48:52,480 --> 00:48:53,199 pues ha cogido 959 00:48:53,199 --> 00:48:55,239 del precio test fill 960 00:48:55,239 --> 00:48:57,679 del precio test fill 961 00:48:57,679 --> 00:48:58,400 que es este de aquí 962 00:48:58,400 --> 00:48:59,960 la cantidad 963 00:48:59,960 --> 00:49:03,460 le ha quitado la porquería con esto de aquí 964 00:49:03,460 --> 00:49:05,260 con el trim, o sea, con el getTest 965 00:49:05,260 --> 00:49:06,800 consigo el texto, con el trim la limpio 966 00:49:06,800 --> 00:49:09,119 la he pasado de texto 967 00:49:09,119 --> 00:49:11,460 a número, hago la operación 968 00:49:11,460 --> 00:49:13,300 que tengo que hacer, es sumarle el IVA 969 00:49:13,300 --> 00:49:15,380 y luego por último, el resultado 970 00:49:15,380 --> 00:49:17,480 que es este de aquí, pues le pongo 971 00:49:17,480 --> 00:49:18,619 el resultado, ya está 972 00:49:18,619 --> 00:49:21,519 bueno, esto se puede mejorar, cierro la aplicación 973 00:49:21,519 --> 00:49:24,809 vale 974 00:49:24,809 --> 00:49:27,869 bueno, aquí por ejemplo, me está pidiendo a gritos 975 00:49:27,869 --> 00:49:31,650 que le ponga el símbolo 976 00:49:31,650 --> 00:49:33,710 de euro, ¿no? a mí me lo está pidiendo 977 00:49:33,710 --> 00:49:35,590 a gritos, y luego está como 978 00:49:35,590 --> 00:49:37,550 muy pequeño, o sea, el precio 979 00:49:37,550 --> 00:49:40,150 El resultado final está como muy pequeño 980 00:49:40,150 --> 00:49:42,369 ¿Se puede cambiar el tipo de letra y cosas así? 981 00:49:42,530 --> 00:49:43,829 Sí, que es lo que me faltaba por contar 982 00:49:43,829 --> 00:49:46,570 Si pincho en un elemento 983 00:49:46,570 --> 00:49:48,550 Pincho en un elemento 984 00:49:48,550 --> 00:49:49,730 Puedo pinchar aquí o aquí 985 00:49:49,730 --> 00:49:51,809 Que me esté seleccionado, ¿vale? 986 00:49:52,030 --> 00:49:54,889 Si lo selecciono, vais a ver que aquí aparecen sus propiedades 987 00:49:54,889 --> 00:49:55,869 Las propiedades del elemento 988 00:49:55,869 --> 00:49:57,489 Voy a pinchar en otro para que se vea que cambian 989 00:49:57,489 --> 00:50:00,590 ¿Veis? Que han cambiado las propiedades 990 00:50:00,590 --> 00:50:04,519 ¿De acuerdo? Pues aquí salen sus propiedades 991 00:50:04,519 --> 00:50:06,280 Por ejemplo, en el campo de texto 992 00:50:06,280 --> 00:50:08,619 Puedo decir que sea editable o no editable 993 00:50:08,619 --> 00:50:11,860 ¿De acuerdo? Puede haber campos de texto que no sean editables 994 00:50:11,860 --> 00:50:13,340 porque estén desactivados 995 00:50:13,340 --> 00:50:15,719 ¿De acuerdo? Puedo cambiarle el color 996 00:50:15,719 --> 00:50:17,619 de fondo. Ah, mira, es muy interesante. El tipo de letra 997 00:50:17,619 --> 00:50:19,659 Voy a cambiarle el tipo de letra. ¿Veis que le está 998 00:50:19,659 --> 00:50:21,460 poniendo este tipo de letra? Pues mira, le voy a poner 999 00:50:21,460 --> 00:50:23,420 un tipo de letra así más grande, ¿no? 1000 00:50:23,940 --> 00:50:25,699 Le voy a poner negrita y le voy a 1001 00:50:25,699 --> 00:50:26,739 poner un tamaño bestial 1002 00:50:26,739 --> 00:50:29,880 Ok. Ahí está 1003 00:50:29,880 --> 00:50:31,360 ¿Vale? Lo habéis visto, ¿no? 1004 00:50:31,599 --> 00:50:33,539 Con estas cositas de aquí puedo 1005 00:50:33,539 --> 00:50:35,800 cambiar las propiedades de los elementos 1006 00:50:35,800 --> 00:50:37,539 Claro, tendré que saber lo que significan 1007 00:50:37,539 --> 00:51:07,820 Primero, hay muchas cosas que no me interesa tocar, porque las hace él ya por defecto, pero otras me voy a ver obligados a tocarlas, ¿vale? Pues en este caso quería cambiarle de ahí el tamaño del tipo de letra, ¿vale? Pues le doy a ejecutar, le doy a ejecutar, con paciencia, y ahí lo tengo. 1008 00:51:07,820 --> 00:51:30,000 ¿Veis que lo ha puesto ahí en grande? Y ahora meto aquí un IVA, con una cantidad para calcularle el IVA, y me dice aquí el IVA. Bueno, esto se podría mejorar, ¿no? Bueno, fijaros que aquí me ha puesto un 0,002, que no debía ponerlo. Si lo hacéis a mano, vais a ver que ese 0,02 no debería salir. 1009 00:51:30,760 --> 00:51:33,280 ¿Eso por qué es? Porque los ordenadores se equivocan. 1010 00:51:33,659 --> 00:51:34,619 Sí, sí, se equivocan. 1011 00:51:35,000 --> 00:51:36,460 El ordenador piensa en binario. 1012 00:51:36,980 --> 00:51:42,039 Y al pasar determinados números a binario, tienen infinitos decimales. 1013 00:51:42,400 --> 00:51:43,480 O muchos decimales. 1014 00:51:43,880 --> 00:51:46,400 Claro, el ordenador tiene una memoria limitada. 1015 00:51:46,659 --> 00:51:48,019 Entonces tiene que cortar por algún lado. 1016 00:51:48,139 --> 00:51:48,900 Pues corto por aquí. 1017 00:51:49,699 --> 00:51:51,800 Y eso hace que se pierda precisión. 1018 00:51:52,079 --> 00:51:55,139 Y es lo que provoca que el ordenador se equivoque. 1019 00:51:56,039 --> 00:51:57,860 ¿Veis? ¿Esto cómo lo maquillamos? 1020 00:51:57,860 --> 00:52:09,260 Pues esto lo que voy a hacer es, debería formatear el código, formatear el número, para limitar el número de decimales, decirle que estos decimales no los muestre, ¿vale? Pero sí, el ordenador se equivoca. 1021 00:52:10,860 --> 00:52:24,590 Y hasta aquí el vídeo. Bueno, una última cosa por decir, que es que, bueno, ya lo hemos dicho antes, que cuando compilo el proyecto, me dice aquí el fichero hard en el que sale el proyecto. 1022 00:52:24,590 --> 00:52:36,889 A ver, pero bueno, esto si lo hacemos, yo lo estoy haciendo con Maven para mostrarlo, pero si lo hacéis con Gradle, pues vais a ver que también es bastante fácil. Es lo mismo, Gradle ya lo habéis visto y es fácil de manejar. 1023 00:52:36,889 --> 00:52:49,710 Vale, pues ahí tengo el fichero hard. Fichero hard sin dependencias. Ojito. Este fichero, si intentase ejecutar este fichero, saldría un error exigiéndome la dependencia plan lab que le he puesto. 1024 00:52:50,309 --> 00:52:57,170 Pero habría que coger y poner las dependencias, habría que buscarse en internet cómo se añaden las dependencias a un fichero Maven. 1025 00:52:57,170 --> 00:52:59,070 vais a ver que te dan un porrón de código 1026 00:52:59,070 --> 00:53:00,269 que tienes que copiar 1027 00:53:00,269 --> 00:53:03,550 aquí, acordaos que en Maven 1028 00:53:03,550 --> 00:53:05,730 es el pon.xml 1029 00:53:05,730 --> 00:53:07,170 que le copias aquí 1030 00:53:07,170 --> 00:53:08,710 y ya está, y te lo hace.