1 00:00:02,419 --> 00:00:10,199 Un poquito por encima para que a partir de ahí ya podéis investigar y hacer muchas más cosas, ¿vale? 2 00:00:10,240 --> 00:00:24,920 Ya con eso dejaríamos completado pues lo que vamos a ver de Swing, que es una especie de visión, visión global por encima de cómo funciona, de las posibilidades que tiene y a partir de ahí ya uno se mete y hace lo que quiera, pero nosotros nos quedamos aquí. 3 00:00:26,579 --> 00:00:31,899 Bueno, ¿qué nos ha faltado? ¿Qué nos ha faltado a nosotros ahora en interfaces gráficas? 4 00:00:31,899 --> 00:00:33,200 pues sí, mucha interfaz gráfica 5 00:00:33,200 --> 00:00:36,159 pero ahí ni hemos dibujado 6 00:00:36,159 --> 00:00:36,759 ni hemos hecho nada 7 00:00:36,759 --> 00:00:40,240 no pide el cuerpo dibujar un poco 8 00:00:40,240 --> 00:00:40,840 no 9 00:00:40,840 --> 00:00:44,119 hemos puesto botones, comandos 10 00:00:44,119 --> 00:00:45,679 y ya está, pero no hemos dibujado 11 00:00:45,679 --> 00:00:47,939 y una interfaz gráfica pues uno a lo mejor querría también 12 00:00:47,939 --> 00:00:49,880 hacer sus propias figuras, sus cuadraditos 13 00:00:49,880 --> 00:00:51,719 sus cosas, de eso no hemos hecho nada 14 00:00:51,719 --> 00:00:54,579 lo que hemos metido es componentes que ya existen 15 00:00:54,579 --> 00:00:56,179 nada más, normalmente 16 00:00:56,179 --> 00:00:57,880 una interfaz gráfica 17 00:00:57,880 --> 00:01:00,340 es eso, un conjunto 18 00:01:00,340 --> 00:01:02,479 de componentes de una paleta 19 00:01:02,479 --> 00:01:03,719 que uno 20 00:01:03,719 --> 00:01:06,459 diseña, elabora un prototipo 21 00:01:06,459 --> 00:01:08,599 y ya está, pero uno también tiene que poder 22 00:01:08,599 --> 00:01:10,719 dibujar sus propios elementos 23 00:01:10,719 --> 00:01:12,519 a veces, bueno pues 24 00:01:12,519 --> 00:01:14,359 efectivamente hay una clase 25 00:01:14,359 --> 00:01:15,540 que permite dibujar 26 00:01:15,540 --> 00:01:17,359 que es la clase graphics 27 00:01:17,359 --> 00:01:20,480 lo que pasa es que la clase graphics 28 00:01:20,480 --> 00:01:22,040 no es una clase que uno instancie 29 00:01:22,040 --> 00:01:23,040 que pueda instanciar 30 00:01:23,040 --> 00:01:26,079 y usar sus métodos para dibujar 31 00:01:26,079 --> 00:01:27,780 no funciona así 32 00:01:27,780 --> 00:01:29,900 uno no instancia un objeto 33 00:01:29,900 --> 00:01:31,760 de la clase graphics y dibuja, no 34 00:01:31,760 --> 00:01:33,980 los objetos de la clase 35 00:01:33,980 --> 00:01:35,739 graphics tienen que 36 00:01:35,739 --> 00:01:37,680 recibirse a través 37 00:01:37,680 --> 00:01:38,519 de un método 38 00:01:38,519 --> 00:01:41,719 y entonces tú coges el parámetro que has 39 00:01:41,719 --> 00:01:43,640 recibido, o sea, es una estructura un poco medio 40 00:01:43,640 --> 00:01:45,599 rara, la que hace, pero bueno 41 00:01:45,599 --> 00:01:47,400 vamos a ver un poquito por encima como es y ya está 42 00:01:47,400 --> 00:01:49,939 a ver, por ejemplo 43 00:01:49,939 --> 00:01:51,439 ejemplo graphics, aquí 44 00:01:51,439 --> 00:01:58,599 pues vamos a ver, vamos a hacernos una clase 45 00:01:58,599 --> 00:02:00,319 un frame 46 00:02:00,319 --> 00:02:05,659 vamos a hacernos 47 00:02:05,659 --> 00:02:06,659 un frame 48 00:02:06,659 --> 00:02:23,259 vale, aquí tenemos nuestro frame 49 00:02:23,259 --> 00:02:30,960 y vamos a hacer 50 00:02:30,960 --> 00:02:31,680 el constructor 51 00:02:31,680 --> 00:02:38,469 y el constructor, pues ahora mismo lo único 52 00:02:38,469 --> 00:02:40,349 que va a tener es, vamos a darle 53 00:02:40,349 --> 00:02:41,110 un tamaño 54 00:02:41,110 --> 00:02:50,689 y que sea visible 55 00:02:50,689 --> 00:02:57,430 a ver, para que no me aparezca 56 00:02:57,430 --> 00:02:59,370 todo el rato en la esquina, le vamos a poner 57 00:02:59,370 --> 00:03:00,189 en unas 58 00:03:00,189 --> 00:03:01,530 aquí 59 00:03:01,530 --> 00:03:07,169 pero este, si yo le pongo coordenadas 60 00:03:07,169 --> 00:03:09,050 No era setSize, sino setBounce, ¿verdad? 61 00:03:09,210 --> 00:03:09,930 Sí, vale 62 00:03:09,930 --> 00:03:12,949 Vale, entonces este es mi frame 63 00:03:12,949 --> 00:03:15,389 Que vamos, bueno, voy a hacer un main, claro 64 00:03:15,389 --> 00:03:17,530 Para poder ejecutar esto 65 00:03:17,530 --> 00:03:18,870 A ver 66 00:03:18,870 --> 00:03:41,509 Vale, pues nada 67 00:03:41,509 --> 00:03:47,270 Eh, ala, ya está 68 00:03:47,270 --> 00:03:57,550 Pues ya está 69 00:03:57,550 --> 00:03:59,590 Este es mi frame, que no tiene nada 70 00:03:59,590 --> 00:04:01,729 Tiene un panel por defecto 71 00:04:01,729 --> 00:04:04,909 Porque ya sabemos que todos los frames vienen con un panel por defecto 72 00:04:04,909 --> 00:04:06,830 Pero panel por defecto 73 00:04:06,830 --> 00:04:08,409 Al que yo no le he puesto nada todavía 74 00:04:08,409 --> 00:04:09,669 No le he puesto ningún componente ni nada 75 00:04:09,669 --> 00:04:12,030 Espera, le voy a poner lo del 76 00:04:12,030 --> 00:04:16,589 Para que se salga 77 00:04:16,589 --> 00:04:19,610 Como era ese método 78 00:04:19,610 --> 00:04:22,290 This.set 79 00:04:22,290 --> 00:04:26,879 Default close operation 80 00:04:26,879 --> 00:04:27,560 Este será 81 00:04:27,560 --> 00:04:28,920 Y esto era 82 00:04:28,920 --> 00:04:32,220 Exit on close 83 00:04:32,220 --> 00:04:32,699 Sería 84 00:04:32,699 --> 00:04:34,860 Imagina 85 00:04:34,860 --> 00:04:38,730 Así, ¿no? Con esto ya se cierra 86 00:04:38,730 --> 00:04:48,959 Sí, vale 87 00:04:48,959 --> 00:04:52,300 bueno, ya está, mi frame básico 88 00:04:52,300 --> 00:04:54,339 que no tiene nada, salvo la opción de cerrar 89 00:04:54,339 --> 00:04:56,439 colocarlo en coordenada 90 00:04:56,439 --> 00:04:58,199 x100 y 100, tamaño 91 00:04:58,199 --> 00:05:00,399 500, 400 92 00:05:00,399 --> 00:05:04,279 ser visible y se acabó 93 00:05:04,279 --> 00:05:06,420 vale, pues nosotros ahora 94 00:05:06,420 --> 00:05:08,040 queremos dibujar en el panel 95 00:05:08,040 --> 00:05:10,600 queremos dibujar en el panel que tiene por defecto 96 00:05:10,600 --> 00:05:12,339 vale, pues necesitamos un objeto 97 00:05:12,339 --> 00:05:14,379 graphics que es el que me provee de los métodos 98 00:05:14,379 --> 00:05:16,639 para dibujar, dibujar cuadraditos, dibujar no sé qué 99 00:05:16,639 --> 00:05:18,199 rellenarlos, patatín, necesito 100 00:05:18,199 --> 00:05:20,920 ese objeto graphics, ese objeto graphics 101 00:05:20,920 --> 00:05:22,620 no lo podemos instanciar 102 00:05:22,620 --> 00:05:24,240 aquí, no podemos hacer 103 00:05:24,240 --> 00:05:25,779 un graphics 104 00:05:25,779 --> 00:05:28,779 new graphics e instanciarlo 105 00:05:28,779 --> 00:05:30,639 y a partir de ahí dibujar, no podemos hacerlo 106 00:05:30,639 --> 00:05:32,680 este objeto graphics que es el que 107 00:05:32,680 --> 00:05:34,500 necesitamos para dibujar, tenemos que cogerlo 108 00:05:34,500 --> 00:05:36,600 a través de un 109 00:05:36,600 --> 00:05:38,100 método que se llama paint 110 00:05:38,100 --> 00:05:39,779 que lo recibe como parámetro 111 00:05:39,779 --> 00:05:42,699 bueno y ese método paint de donde ha salido 112 00:05:42,699 --> 00:05:44,240 vale pues 113 00:05:44,240 --> 00:05:46,620 los contenedores como los 114 00:05:46,620 --> 00:05:47,939 frames, los paneles 115 00:05:47,939 --> 00:05:50,839 son clases que ya existen en Java 116 00:05:50,839 --> 00:05:52,500 obviamente, JPanel 117 00:05:52,500 --> 00:05:54,660 JFrame, ya existen 118 00:05:54,660 --> 00:05:56,519 y tienen un método Paint 119 00:05:56,519 --> 00:05:58,860 que yo puedo sobreescribir o no 120 00:05:58,860 --> 00:05:59,540 si quiero 121 00:05:59,540 --> 00:06:03,160 entonces el método Paint es un método 122 00:06:03,160 --> 00:06:04,899 que es el que la máquina virtual 123 00:06:04,899 --> 00:06:06,120 llama automáticamente 124 00:06:06,120 --> 00:06:08,800 cuando tiene que redibujar el panel 125 00:06:08,800 --> 00:06:10,899 o el frame, ¿cuándo lo tiene que redibujar? 126 00:06:11,300 --> 00:06:12,579 pues cuando uno da un clic 127 00:06:12,579 --> 00:06:14,899 obviamente lo tiene que redibujar 128 00:06:14,899 --> 00:06:16,639 porque lo que tú visualmente ves 129 00:06:16,639 --> 00:06:18,560 ha cambiado, de hecho al hacer el clic el botoncito 130 00:06:18,560 --> 00:06:20,120 ha cambiado mínimamente el color 131 00:06:20,120 --> 00:06:22,660 en algún momento, tú ves físicamente 132 00:06:22,660 --> 00:06:24,579 el botón hundiéndose o cambiando de color 133 00:06:24,579 --> 00:06:26,199 entonces cada vez que haces algo 134 00:06:26,199 --> 00:06:28,600 en el que tú físicamente has visto 135 00:06:28,600 --> 00:06:29,879 que algo ha cambiado o cuando 136 00:06:29,879 --> 00:06:32,480 redimensionas una ventana 137 00:06:32,480 --> 00:06:34,459 cualquier cosa, ahí se está llamando 138 00:06:34,459 --> 00:06:36,579 automáticamente al método paint 139 00:06:36,579 --> 00:06:38,879 sin que todos lo veamos, sin que todos lo hagamos 140 00:06:38,879 --> 00:06:39,819 ¿vale? 141 00:06:40,240 --> 00:06:42,680 cada vez que se hace algo que cambia 142 00:06:42,680 --> 00:06:44,019 el aspecto de la ventana 143 00:06:44,019 --> 00:06:47,319 cualquier cosa que hagamos 144 00:06:47,319 --> 00:06:49,699 se está llamando automáticamente a ese método 145 00:06:49,699 --> 00:06:51,259 que no lo hemos hecho nosotros 146 00:06:51,259 --> 00:06:53,699 pero ese método lo tiene ya 147 00:06:53,699 --> 00:06:55,519 la clase JFrame, lo tiene ya 148 00:06:55,519 --> 00:06:56,660 la clase JPanel 149 00:06:56,660 --> 00:06:58,899 entonces desde el momento en que le damos de JFrame 150 00:06:58,899 --> 00:07:00,240 o cuando usamos un panel 151 00:07:00,240 --> 00:07:02,100 ya tienen ese método Paint 152 00:07:02,100 --> 00:07:03,519 entonces por eso no lo tenemos que hacer 153 00:07:03,519 --> 00:07:06,040 porque ya está hecho y se llama automáticamente 154 00:07:06,040 --> 00:07:07,379 para redibujar 155 00:07:07,379 --> 00:07:10,199 entonces Paint es el método que sirve para 156 00:07:10,199 --> 00:07:12,019 dibujar en pantalla 157 00:07:12,019 --> 00:07:13,100 lo que nosotros vemos 158 00:07:13,100 --> 00:07:14,620 ese método 159 00:07:14,620 --> 00:07:18,040 entonces, resulta que ese método Paint 160 00:07:18,040 --> 00:07:19,879 es el que recibe como 161 00:07:19,879 --> 00:07:21,819 parámetro un objeto 162 00:07:21,819 --> 00:07:23,420 Graphics, entonces si yo 163 00:07:23,420 --> 00:07:25,759 sobreescribiera el Paint, ese método 164 00:07:25,759 --> 00:07:26,839 si yo lo sobreescribo 165 00:07:26,839 --> 00:07:29,019 ya tengo el objeto Graphics 166 00:07:29,019 --> 00:07:32,000 porque es un parámetro del Paint 167 00:07:32,000 --> 00:07:33,980 luego lo puedo utilizar dentro del Paint 168 00:07:33,980 --> 00:07:35,319 ese Graphics 169 00:07:35,319 --> 00:07:36,839 entonces, ¿qué tengo que hacer? 170 00:07:37,839 --> 00:07:39,259 sobreescribir el método Paint 171 00:07:39,259 --> 00:07:40,579 y a través de él 172 00:07:40,579 --> 00:07:43,079 puedo sacar ya el Graphics para dibujar 173 00:07:43,079 --> 00:07:45,379 bueno, pues esa es la idea 174 00:07:45,379 --> 00:07:46,959 esa es la idea 175 00:07:46,959 --> 00:07:48,800 ¿vale? entonces todo, como veis 176 00:07:48,800 --> 00:07:51,319 todo parte de las ideas que ya conocemos 177 00:07:51,319 --> 00:07:52,879 y que se supone que tenemos interiorizadas 178 00:07:52,879 --> 00:07:54,939 pues de herencia, de sobrescribir 179 00:07:54,939 --> 00:07:56,399 de parámetros, de todo eso 180 00:07:56,399 --> 00:07:58,399 todo está construido sobre esas ideas 181 00:07:58,399 --> 00:08:01,019 que se supone que hemos ido cogiendo a largo del curso 182 00:08:01,019 --> 00:08:02,779 vale, vamos a hacer una cosa 183 00:08:02,779 --> 00:08:04,579 vamos a hacer nosotros un panel 184 00:08:04,579 --> 00:08:06,220 que herede de jPanel 185 00:08:06,220 --> 00:08:08,560 y vamos a sobrescribir el paint 186 00:08:08,560 --> 00:08:11,040 entonces ya automáticamente al sobrescribir 187 00:08:11,040 --> 00:08:12,800 el paint ya tenemos el grafis, que es lo que queremos 188 00:08:12,800 --> 00:08:15,300 y ese panel vamos a hacer que sea 189 00:08:15,300 --> 00:08:16,920 el panel por defecto de ese frame 190 00:08:16,920 --> 00:08:19,300 con lo cual todo lo que dibujemos a través de ese 191 00:08:19,300 --> 00:08:20,759 gráfico va a aparecer en el panel 192 00:08:20,759 --> 00:08:23,100 que es lo que queríamos, entonces es una posibilidad 193 00:08:23,100 --> 00:08:24,240 para dibujar 194 00:08:24,240 --> 00:08:27,180 pero uno puede sobre escribir el paint de frame 195 00:08:27,180 --> 00:08:28,699 que también lo tiene, bueno 196 00:08:28,699 --> 00:08:31,500 pues venga, vamos a hacernos 197 00:08:31,500 --> 00:08:31,819 aquí 198 00:08:31,819 --> 00:08:40,029 una clase que herede 199 00:08:40,029 --> 00:08:42,210 de jPanel 200 00:08:42,210 --> 00:08:43,889 vale 201 00:08:43,889 --> 00:08:48,409 jPanel es la clase 202 00:08:48,409 --> 00:08:50,470 panel que existe en swing 203 00:08:50,470 --> 00:08:52,809 entonces yo puedo hacer mi propia clase 204 00:08:52,809 --> 00:08:53,669 heredando de ella 205 00:08:53,669 --> 00:08:57,070 ala, si yo aquí no hago nada más 206 00:08:57,070 --> 00:08:58,370 mi panel 207 00:08:58,370 --> 00:09:00,230 es idéntica a jPanel 208 00:09:00,230 --> 00:09:04,000 idéntica, vale 209 00:09:04,000 --> 00:09:06,080 pues entonces, pero vamos a sobrescribir paint 210 00:09:06,080 --> 00:09:07,059 entonces 211 00:09:07,059 --> 00:09:10,179 el método paint, vamos a ver 212 00:09:10,179 --> 00:09:12,200 si me lo pone como sobrescrito 213 00:09:12,200 --> 00:09:14,100 porque si no me lo pone como sobrescrito 214 00:09:14,100 --> 00:09:15,600 voy a mirarlo en 215 00:09:15,600 --> 00:09:17,340 alguna chuleta 216 00:09:17,340 --> 00:09:27,370 vale, he acertado con la cabecera 217 00:09:27,370 --> 00:09:30,090 vale, veis que 218 00:09:30,090 --> 00:09:32,110 efectivamente 219 00:09:32,110 --> 00:09:34,269 en cuanto yo he escrito esta cabecera 220 00:09:34,269 --> 00:09:36,370 en cuanto yo la he escrito 221 00:09:36,370 --> 00:09:38,690 me ha puesto aquí el símbolo 222 00:09:38,690 --> 00:09:40,710 de está sobrescribiendo 223 00:09:40,710 --> 00:09:42,429 el paint, perfecto 224 00:09:42,429 --> 00:09:44,269 es justo lo que quería, si me hubiera 225 00:09:44,269 --> 00:09:46,289 equivocado y hubiera puesto 226 00:09:46,289 --> 00:09:47,210 aquí otra cosa 227 00:09:47,210 --> 00:09:49,710 pues ya obviamente 228 00:09:49,710 --> 00:09:52,210 no estoy sobrescribiendo 229 00:09:52,210 --> 00:09:54,090 el paint, sino que estoy haciendo otro método distinto 230 00:09:54,090 --> 00:09:56,350 pero yo no 231 00:09:56,350 --> 00:09:58,190 quiero hacer otro método, quiero sobreescribir este 232 00:09:58,190 --> 00:10:00,750 porque este es el que se llama automáticamente 233 00:10:00,750 --> 00:10:02,429 se llama cuando 234 00:10:02,429 --> 00:10:04,309 el panel se tiene que redibujar 235 00:10:04,309 --> 00:10:05,669 a ver si se tiene que redibujar 236 00:10:05,669 --> 00:10:07,750 vale, pues entonces 237 00:10:07,750 --> 00:10:11,799 ahora ya a través 238 00:10:11,799 --> 00:10:12,659 de este 239 00:10:12,659 --> 00:10:15,419 método paint de aquí 240 00:10:15,419 --> 00:10:17,679 ya tengo un graphics para dibujar 241 00:10:17,679 --> 00:10:18,200 que es este 242 00:10:18,200 --> 00:10:21,480 y este graphics aquí tiene 243 00:10:21,480 --> 00:10:23,799 un montonazo de métodos 244 00:10:23,799 --> 00:10:26,000 de dibujo, hacer rectas 245 00:10:26,000 --> 00:10:27,519 líneas, dibujar no sé qué 246 00:10:27,519 --> 00:10:29,340 todo, todo tipo de 247 00:10:29,340 --> 00:10:31,940 tonterías, por ejemplo 248 00:10:31,940 --> 00:10:33,580 vamos a dibujar un 249 00:10:33,580 --> 00:10:36,720 un 250 00:10:36,720 --> 00:10:42,769 un óvalo 251 00:10:42,769 --> 00:10:48,379 que esté 252 00:10:48,379 --> 00:10:50,720 pues yo que sé si la ventana está en 253 00:10:50,720 --> 00:10:52,779 imagino 254 00:10:52,779 --> 00:10:54,500 que eso será coordenada X, coordenada Y 255 00:10:54,500 --> 00:10:55,500 vamos a probar 256 00:10:55,500 --> 00:10:58,039 150 a 150 257 00:10:58,039 --> 00:11:00,139 y que sea pues de 258 00:11:00,139 --> 00:11:02,659 60 a 60 259 00:11:02,659 --> 00:11:03,860 o sea pequeñajo 260 00:11:03,860 --> 00:11:05,960 vale 261 00:11:05,960 --> 00:11:08,899 he dibujado este cacharro de aquí 262 00:11:08,899 --> 00:11:10,820 vale, entonces ahora 263 00:11:10,820 --> 00:11:12,799 este panel cada vez que 264 00:11:12,799 --> 00:11:14,480 se tenga que dibujar 265 00:11:14,480 --> 00:11:16,580 porque ha cambiado el aspecto de la ventana 266 00:11:16,580 --> 00:11:18,919 o lo que sea, pues va a llamar a paint 267 00:11:18,919 --> 00:11:21,240 en este caso 268 00:11:21,240 --> 00:11:23,059 el paint lo único que hace es dibujar 269 00:11:23,059 --> 00:11:24,740 el mismo óvalo una y otra vez 270 00:11:24,740 --> 00:11:27,179 pero yo aquí podría jugar y hacer mil cosas 271 00:11:27,179 --> 00:11:29,039 pues hacer una variable 272 00:11:29,039 --> 00:11:31,399 que esa variable se fuera incrementando 273 00:11:31,399 --> 00:11:34,639 y lo multiplicara por aquí 274 00:11:34,639 --> 00:11:36,639 con lo cual cada vez que redimensiono 275 00:11:36,639 --> 00:11:38,600 el panel, el óvalo se va haciendo cada vez más grande 276 00:11:38,600 --> 00:11:40,580 más grande, yo aquí ya con esto ya podría hacer 277 00:11:40,580 --> 00:11:42,559 mil combinaciones y mil historias 278 00:11:42,559 --> 00:11:44,179 solo con esta idea, a partir de esta idea 279 00:11:44,179 --> 00:11:46,500 ahora mismo mi paint dibuja todo el rato 280 00:11:46,500 --> 00:11:48,460 el mismo óvalo, todo el rato, vale 281 00:11:48,460 --> 00:11:49,399 pero a ver, este panel 282 00:11:49,399 --> 00:11:52,360 es el que tiene que estar en la interfaz, claro 283 00:11:52,360 --> 00:11:54,620 es el que tiene que estar, entonces vamos a 284 00:11:54,620 --> 00:11:56,340 fijar 285 00:11:56,340 --> 00:11:58,379 al mi frame, que su panel por 286 00:11:58,379 --> 00:12:00,120 defecto sea este 287 00:12:00,120 --> 00:12:06,659 new 288 00:12:06,659 --> 00:12:09,379 como se llama 289 00:12:09,379 --> 00:12:10,639 la clase que hemos hecho, mi panel 290 00:12:10,639 --> 00:12:20,000 vale, pues entonces, mi frame 291 00:12:20,000 --> 00:12:22,179 su panel por defecto hemos puesto 292 00:12:22,179 --> 00:12:24,039 que sea ese que hemos 293 00:12:24,039 --> 00:12:25,320 hecho, vale 294 00:12:25,320 --> 00:12:27,759 y este panel 295 00:12:27,759 --> 00:12:29,580 pues lo que hace es dibujar esto de aquí 296 00:12:29,580 --> 00:12:32,139 y a partir 297 00:12:32,139 --> 00:12:33,159 de aquí pues podría 298 00:12:33,159 --> 00:12:36,000 ya hacer cualquier cosa que quisiera 299 00:12:36,000 --> 00:12:37,700 vale, vamos a probarlo 300 00:12:37,700 --> 00:12:39,460 a ver si me ha escapado algo o vemos el OVA 301 00:12:39,460 --> 00:12:41,799 no lo vemos porque así sobre la 302 00:12:41,799 --> 00:12:43,940 marcha es muy probable que me haya escapado 303 00:12:43,940 --> 00:12:44,259 algo 304 00:12:44,259 --> 00:12:47,299 vale, pues no, pues ala, ahí está 305 00:12:47,299 --> 00:12:48,899 el dibujillo 306 00:12:48,899 --> 00:12:51,980 entonces con esta estructura 307 00:12:51,980 --> 00:12:53,679 con esta es la idea, ya uno puede dibujar 308 00:12:53,679 --> 00:12:55,259 y hacer cualquier chorrada 309 00:12:55,259 --> 00:12:56,759 entonces, por ejemplo 310 00:12:56,759 --> 00:13:01,519 yo os 311 00:13:01,519 --> 00:13:02,799 propondría 312 00:13:02,799 --> 00:13:05,539 que os entretengáis, primero haciendo 313 00:13:05,539 --> 00:13:06,620 los ejercicios que tenéis que hacer 314 00:13:06,620 --> 00:13:08,299 porque ese es nuestro examen 315 00:13:08,299 --> 00:13:09,679 y luego ya 316 00:13:09,679 --> 00:13:13,659 que os entretengáis haciendo esto, que se hace rapidísimo 317 00:13:13,659 --> 00:13:21,860 Y podéis, por ejemplo, a ver, ¿dónde lo tenemos? Aquí, creo. 318 00:13:28,679 --> 00:13:36,080 Por ejemplo, esto de aquí se hace en dos líneas, ¿vale? 319 00:13:36,080 --> 00:13:51,019 Que le quiero cambiar, por ejemplo, la velocidad, pues le voy a poner este 3 y 3. 320 00:13:51,279 --> 00:13:56,740 Ahora va más rápido 321 00:13:56,740 --> 00:14:00,039 Que quiero ir 322 00:14:00,039 --> 00:14:01,179 Que vaya a toda leche 323 00:14:01,179 --> 00:14:09,470 ¿Vale? 324 00:14:10,850 --> 00:14:12,169 No, es imposible 325 00:14:12,169 --> 00:14:15,620 Vale, pues entonces 326 00:14:15,620 --> 00:14:19,059 Cuando acabéis los ejercicios 327 00:14:19,059 --> 00:14:20,879 Tratad de hacer algo así con el graphics 328 00:14:20,879 --> 00:14:21,639 Que más o menos 329 00:14:21,639 --> 00:14:24,840 Para consolidar esta idea 330 00:14:24,840 --> 00:14:27,500 Y ya está 331 00:14:27,500 --> 00:14:27,980 ¿Vale? 332 00:14:29,639 --> 00:14:30,100 Entonces 333 00:14:30,100 --> 00:14:31,940 Repito 334 00:14:31,940 --> 00:14:35,059 Para dibujar el objeto que dibujas 335 00:14:35,059 --> 00:14:36,059 un objeto de esta clase 336 00:14:36,059 --> 00:14:39,019 este no se instancia en cualquier sitio de cualquier manera 337 00:14:39,019 --> 00:14:40,899 este lo recibe 338 00:14:40,899 --> 00:14:42,159 como parámetro este método 339 00:14:42,159 --> 00:14:45,279 con lo cual yo tengo que dibujar dentro del paint 340 00:14:45,279 --> 00:14:47,059 tengo que dibujar dentro del paint 341 00:14:47,059 --> 00:14:49,340 y el paint donde está 342 00:14:49,340 --> 00:14:51,039 el paint es un método 343 00:14:51,039 --> 00:14:52,899 de los paneles o de los frames 344 00:14:52,899 --> 00:14:54,860 entonces yo los puedo sobre escribir 345 00:14:54,860 --> 00:14:56,879 también puedo sobre escribir 346 00:14:56,879 --> 00:14:58,399 el paint de frame, de hecho aquí 347 00:14:58,399 --> 00:15:00,220 si me hago un 348 00:15:00,220 --> 00:15:03,240 dentro del frame 349 00:15:03,240 --> 00:15:06,929 me hago esto 350 00:15:06,929 --> 00:15:10,279 también aparece como sobrescrito 351 00:15:10,279 --> 00:15:12,840 este está directamente en el frame 352 00:15:12,840 --> 00:15:16,490 y en cuanto lo he escrito 353 00:15:16,490 --> 00:15:20,360 me ha aparecido 354 00:15:20,360 --> 00:15:22,559 efectivamente estoy sobrescribiendo el paint 355 00:15:22,559 --> 00:15:23,019 de frame 356 00:15:23,019 --> 00:15:26,299 lo que pasa es que lo normal es que uno trabaje 357 00:15:26,299 --> 00:15:28,399 con paneles, meta componentes 358 00:15:28,399 --> 00:15:30,279 a paneles, dibuje en paneles, etc 359 00:15:30,279 --> 00:15:31,559 se trabaja con paneles 360 00:15:31,559 --> 00:15:33,700 uno o muchos, los que uno quiera 361 00:15:33,700 --> 00:15:36,360 no directamente en el frame, el frame suele ser un elemento 362 00:15:36,360 --> 00:15:38,019 raíz para luego ya poner uno 363 00:15:38,019 --> 00:15:39,419 varios paneles, lo que uno quiera 364 00:15:39,419 --> 00:15:40,940 ¿vale? 365 00:15:43,779 --> 00:15:48,659 Vale, entonces, repito, el Paint se invoca automáticamente 366 00:15:48,659 --> 00:15:51,279 cada vez que uno hace algo con la ventana 367 00:15:51,279 --> 00:15:54,019 que obliga a que sea redibujada. 368 00:15:54,600 --> 00:15:56,440 Pero uno lo puede invocar por código, 369 00:15:57,080 --> 00:15:59,620 que es lo que yo he tenido que hacer aquí 370 00:15:59,620 --> 00:16:02,000 para que la peloteja esta se moviera. 371 00:16:02,919 --> 00:16:05,539 O sea, cada vez que la pelota se mueve 372 00:16:05,539 --> 00:16:07,940 es porque se está llamando al Paint 373 00:16:07,940 --> 00:16:10,080 y el Paint la dibuja en otro sitio, simplemente. 374 00:16:10,480 --> 00:16:11,480 El Paint la dibuja en otro sitio. 375 00:16:12,080 --> 00:16:13,759 Entonces, aquí el Paint se está llamando 376 00:16:13,759 --> 00:16:16,259 no se está llamando porque la ventana 377 00:16:16,259 --> 00:16:18,179 cambie, entonces ¿cómo puede uno llamar 378 00:16:18,179 --> 00:16:20,340 al paint por código? también puede llamar al paint 379 00:16:20,340 --> 00:16:23,720 por código, ¿por qué? porque 380 00:16:23,720 --> 00:16:25,200 existe repaint 381 00:16:25,200 --> 00:16:27,980 ¿vale? entonces, por ejemplo 382 00:16:27,980 --> 00:16:28,539 aquí 383 00:16:28,539 --> 00:16:35,330 mi panel es que no le he puesto una referencia 384 00:16:35,330 --> 00:16:37,070 entonces no puedo llamar a repaint, vamos a 385 00:16:37,070 --> 00:16:38,269 darle una referencia 386 00:16:38,269 --> 00:16:45,309 igual a esto 387 00:16:45,309 --> 00:16:53,690 y ahora aquí pongo panel 388 00:16:53,690 --> 00:17:05,200 ¿veis? existe el método 389 00:17:05,200 --> 00:17:06,599 Repaint por código 390 00:17:06,599 --> 00:17:09,660 Que por código obligas a que se redibuje el panel 391 00:17:09,660 --> 00:17:12,180 Entonces por ejemplo 392 00:17:12,180 --> 00:17:14,059 Vamos a hacer eso que os he dicho 393 00:17:14,059 --> 00:17:14,480 Rápidamente 394 00:17:14,480 --> 00:17:16,079 Pues que el óvulo 395 00:17:16,079 --> 00:17:17,980 En que estaría pensando yo 396 00:17:17,980 --> 00:17:19,880 Que el óvalo encoja 397 00:17:19,880 --> 00:17:22,960 Vamos a hacer una 398 00:17:22,960 --> 00:17:26,059 Una variable 399 00:17:26,059 --> 00:17:27,980 A ver 400 00:17:27,980 --> 00:17:30,119 Vamos a pensar 401 00:17:30,119 --> 00:17:31,420 Que hay que hacerlo de vez en cuando 402 00:17:31,420 --> 00:17:33,180 Queremos 403 00:17:33,180 --> 00:17:35,119 Que este método Paint 404 00:17:35,119 --> 00:17:36,799 el tamaño 405 00:17:36,799 --> 00:17:39,259 sea 60 o sea 406 00:17:39,259 --> 00:17:41,019 120 en función del valor 407 00:17:41,019 --> 00:17:42,380 de una variable 408 00:17:42,380 --> 00:17:44,019 ¿vale? una variable 409 00:17:44,019 --> 00:17:46,920 sí, entonces 410 00:17:46,920 --> 00:17:49,279 aquí esto en lugar de 60 411 00:17:49,279 --> 00:17:50,960 en lugar de 60 412 00:17:50,960 --> 00:17:53,000 esto va a ser una variable 413 00:17:53,000 --> 00:17:55,180 el tamaño del óvalo va a ser un tamaño variable 414 00:17:55,180 --> 00:17:57,180 ¿vale? esa variable 415 00:17:57,180 --> 00:17:58,940 ¿cómo la recibo? 416 00:17:59,339 --> 00:18:00,880 no puedo recibirla por parámetro 417 00:18:00,880 --> 00:18:03,200 porque este método tiene que ser el sobrescrito 418 00:18:03,200 --> 00:18:04,900 luego de la cabecera 419 00:18:04,900 --> 00:18:06,980 no puedo tocar nada, de ese método no lo puedo 420 00:18:06,980 --> 00:18:08,420 tocar, entonces 421 00:18:08,420 --> 00:18:10,880 esta variable no la puedo recibir por parámetro 422 00:18:10,880 --> 00:18:13,240 no queda más remedio que sea una variable de clase 423 00:18:13,240 --> 00:18:15,160 ¿vale? tienes una variable de clase 424 00:18:15,160 --> 00:18:16,619 vale 425 00:18:16,619 --> 00:18:17,900 ahora ya sí 426 00:18:17,900 --> 00:18:20,799 entonces, esta variable de clase 427 00:18:20,799 --> 00:18:22,900 esta variable de clase 428 00:18:22,900 --> 00:18:27,180 la tengo yo que pasar 429 00:18:27,180 --> 00:18:31,690 a... espera 430 00:18:31,690 --> 00:18:32,089 no, es que 431 00:18:32,089 --> 00:18:35,450 lo voy a complicar demasiado 432 00:18:35,450 --> 00:18:41,829 tenemos una idea mejor 433 00:18:41,829 --> 00:18:43,509 así, que es 434 00:18:43,509 --> 00:18:45,809 como esta es una clase interna 435 00:18:45,809 --> 00:18:48,049 como es una clase interna, tiene acceso 436 00:18:48,049 --> 00:18:50,089 a todas las variables de la clase 437 00:18:50,089 --> 00:18:52,009 en la que está, que para eso de hecho 438 00:18:52,009 --> 00:18:53,150 tiene sentido que sea interna 439 00:18:53,150 --> 00:18:55,829 entonces, esta variable 440 00:18:55,829 --> 00:18:57,289 tamaño que esté aquí 441 00:18:57,289 --> 00:18:58,269 ¿vale? 442 00:18:59,250 --> 00:19:02,309 esta variable tamaño está aquí, este es el tamaño del 443 00:19:02,309 --> 00:19:03,910 del óvalo 444 00:19:03,910 --> 00:19:05,309 del círculo, ese es el tamaño 445 00:19:05,309 --> 00:19:06,529 ¿vale? ese es el tamaño 446 00:19:06,529 --> 00:19:10,049 entonces, cada vez que se llama el método paint 447 00:19:10,049 --> 00:19:12,029 el tamaño será el que figura 448 00:19:12,029 --> 00:19:13,529 en esta variable, eso está claro 449 00:19:13,529 --> 00:19:15,430 cada vez que se haga 450 00:19:15,430 --> 00:19:17,630 se llame a este método 451 00:19:17,630 --> 00:19:19,890 el tamaño con el que se dibujará 452 00:19:19,890 --> 00:19:21,369 será el que diga esa variable 453 00:19:21,369 --> 00:19:22,630 el que diga 454 00:19:22,630 --> 00:19:25,970 vale, pues entonces podemos meternos aquí en un bucle 455 00:19:25,970 --> 00:19:26,529 infinito 456 00:19:26,529 --> 00:19:29,069 en el que estamos 457 00:19:29,069 --> 00:19:35,759 continuamente repintando 458 00:19:35,759 --> 00:19:36,480 el panel 459 00:19:36,480 --> 00:19:38,559 pero 460 00:19:38,559 --> 00:19:40,160 cambiando el n 461 00:19:40,160 --> 00:19:42,000 vale 462 00:19:42,000 --> 00:19:44,420 Por ejemplo así 463 00:19:44,420 --> 00:19:47,700 Podemos hacer un 464 00:19:47,700 --> 00:19:53,680 Un contador 465 00:19:53,680 --> 00:19:55,339 Que empieza siendo 0 466 00:19:55,339 --> 00:19:58,240 Lo vamos incrementando aquí 467 00:19:58,240 --> 00:20:04,829 Y ahora cuando sea par 468 00:20:04,829 --> 00:20:06,450 N tiene un valor y cuando sea impar 469 00:20:06,450 --> 00:20:07,950 Tiene otro, por ejemplo 470 00:20:07,950 --> 00:20:09,569 Entonces N va a ser igual a 471 00:20:09,569 --> 00:20:12,990 El resto de dividir 472 00:20:12,990 --> 00:20:14,890 C entre 2 473 00:20:14,890 --> 00:20:16,170 es igual a 0 474 00:20:16,170 --> 00:20:18,849 pues entonces 475 00:20:18,849 --> 00:20:21,170 n que es el tamaño 476 00:20:21,170 --> 00:20:22,930 del círculo va a ser 477 00:20:22,930 --> 00:20:27,319 50 y si no 478 00:20:27,319 --> 00:20:29,140 va a ser 100 479 00:20:29,140 --> 00:20:31,240 vale, entonces 480 00:20:31,240 --> 00:20:33,299 n va cambiando 481 00:20:33,299 --> 00:20:35,299 de valor 50, 100, 50, 100 482 00:20:35,299 --> 00:20:37,420 50 y 100 en cada iteración del bucle 483 00:20:37,420 --> 00:20:39,140 ¿verdad? en cada iteración 484 00:20:39,140 --> 00:20:41,160 entonces cada iteración del bucle 485 00:20:41,160 --> 00:20:43,559 me dibuja el panel con un tamaño 486 00:20:43,559 --> 00:20:45,119 del óvalo distinto 487 00:20:45,119 --> 00:20:47,019 Y 488 00:20:47,019 --> 00:20:50,240 Este de aquí me dice 489 00:20:50,240 --> 00:20:52,700 Como es wild true, no llegas nunca aquí 490 00:20:52,700 --> 00:20:53,940 Etcétera, etcétera 491 00:20:53,940 --> 00:20:56,400 Código inalcanzable, porque el wild true es normal 492 00:20:56,400 --> 00:20:58,460 Que no le guste, etcétera 493 00:20:58,460 --> 00:20:59,440 Entonces vamos a poner 494 00:20:59,440 --> 00:21:05,140 El wild true 495 00:21:05,140 --> 00:21:07,119 Aquí debajo 496 00:21:07,119 --> 00:21:11,740 Vamos a hacer una cosa 497 00:21:11,740 --> 00:21:22,910 Vamos a probarlo y ya paramos, vale 498 00:21:22,910 --> 00:21:27,380 Que no quiero ponerlo después del set visible 499 00:21:27,380 --> 00:21:29,140 Entonces vamos a ponerlo 500 00:21:29,140 --> 00:21:32,789 Vamos a dejarlo donde estaba 501 00:21:32,789 --> 00:21:33,769 Y esto 502 00:21:33,769 --> 00:21:38,289 Lo voy a sacar 503 00:21:38,289 --> 00:21:41,349 Aquí 504 00:21:41,349 --> 00:21:52,519 Y aquí pongo 505 00:21:52,519 --> 00:21:54,660 V 506 00:21:54,660 --> 00:21:57,119 V 507 00:21:57,119 --> 00:21:59,700 Y V 508 00:21:59,700 --> 00:22:03,220 Vale, y esto lo quito 509 00:22:03,220 --> 00:22:09,349 Vale, entonces 510 00:22:09,349 --> 00:22:10,589 ¿Qué ocurre? 511 00:22:10,890 --> 00:22:13,130 Que si, como esto es instantáneo 512 00:22:13,130 --> 00:22:15,849 El repaint se está haciendo 513 00:22:15,849 --> 00:22:16,910 Cada nanosegundos 514 00:22:16,910 --> 00:22:18,269 Yo no me va a dar tiempo a ver 515 00:22:18,269 --> 00:22:20,730 Lo del, de hecho vamos a probarlo 516 00:22:20,730 --> 00:22:21,509 No vamos a ver nada 517 00:22:21,509 --> 00:22:28,099 Claro, es que tengo el set visible después 518 00:22:28,099 --> 00:22:29,740 Es que claro, el while true es muy mala idea 519 00:22:29,740 --> 00:22:31,579 El while true es muy mala idea 520 00:22:31,579 --> 00:22:40,180 Vamos a dejarlo como estaba 521 00:22:40,180 --> 00:22:41,039 Así 522 00:22:41,039 --> 00:22:44,519 Y vamos a poner 523 00:22:44,519 --> 00:22:46,099 Mientras c 524 00:22:46,099 --> 00:22:48,960 Sea menor 525 00:22:48,960 --> 00:22:50,420 Que 526 00:22:50,420 --> 00:22:53,099 Diez mil 527 00:22:53,099 --> 00:22:54,619 Vale 528 00:22:54,619 --> 00:22:57,750 Entonces 529 00:22:57,750 --> 00:23:02,140 Así es que no nos da tiempo a ver nada 530 00:23:02,140 --> 00:23:04,279 no podemos ver nada 531 00:23:04,279 --> 00:23:06,299 entonces vamos a hacer que pare 532 00:23:06,299 --> 00:23:08,140 la ejecución un segundo 533 00:23:08,140 --> 00:23:10,000 que pare la ejecución un segundo 534 00:23:10,000 --> 00:23:12,180 cambie esto, la pare un segundo 535 00:23:12,180 --> 00:23:13,420 y haga el repaint 536 00:23:13,420 --> 00:23:15,460 incremente c 537 00:23:15,460 --> 00:23:17,799 vuelvo a poner n 538 00:23:17,799 --> 00:23:19,640 la pare otro segundo y haga el repaint 539 00:23:19,640 --> 00:23:22,279 entonces como se para un programa 540 00:23:22,279 --> 00:23:23,960 como se detiene una ejecución un ratito 541 00:23:23,960 --> 00:23:26,200 pues simplemente haciendo esto 542 00:23:26,200 --> 00:23:32,140 con esta sentencia 543 00:23:32,140 --> 00:23:34,359 que es el método 544 00:23:34,359 --> 00:23:36,119 estático sleep de esta clase 545 00:23:36,119 --> 00:23:39,019 se queda parado el programa detenido 546 00:23:39,019 --> 00:23:40,279 es como una pausa, es como hacer un pause 547 00:23:40,279 --> 00:23:42,180 como cuando uno hace un system pause 548 00:23:42,180 --> 00:23:44,339 ¿cuántos milisegundos? 549 00:23:45,000 --> 00:23:46,839 los milisegundos que uno le diga aquí 550 00:23:46,839 --> 00:23:48,640 ¿vale? 551 00:23:48,740 --> 00:23:50,200 entonces en este caso un segundo 552 00:23:50,200 --> 00:23:52,940 ¿qué ocurre? que este método 553 00:23:52,940 --> 00:23:55,099 lanza una excepción de las que 554 00:23:55,099 --> 00:23:57,240 estamos obligados a capturar 555 00:23:57,240 --> 00:23:58,400 o a propagar 556 00:23:58,400 --> 00:24:00,940 porque es de tipo exception, es un time exception 557 00:24:00,940 --> 00:24:03,099 entonces me obliga, pues venga 558 00:24:03,099 --> 00:24:05,440 captúrala y ya está 559 00:24:05,440 --> 00:24:06,880 A la capturada 560 00:24:06,880 --> 00:24:11,500 Vale, entonces ahora 561 00:24:11,500 --> 00:24:21,250 Vale, vamos a 562 00:24:21,250 --> 00:24:27,859 A ver, es que 563 00:24:27,859 --> 00:24:34,390 Claro, no lo veo, tengo el set visible después 564 00:24:34,390 --> 00:24:36,069 Vale, es que estoy metiéndome 565 00:24:36,069 --> 00:24:37,309 Unos berenjenales yo sola 566 00:24:37,309 --> 00:24:39,029 Para enseñaros esto 567 00:24:39,029 --> 00:24:40,309 Vale, vamos a parar aquí 568 00:24:40,309 --> 00:24:46,349 Vale, he dado pausa 569 00:24:46,349 --> 00:24:48,410 Vale, vamos a ver 570 00:24:48,410 --> 00:24:49,109 Donde estábamos 571 00:24:49,109 --> 00:24:56,700 vale, pues el bucle 572 00:24:56,700 --> 00:24:58,299 que muestra, que dibuja 573 00:24:58,299 --> 00:24:59,180 que hace el dibujito 574 00:24:59,180 --> 00:25:02,319 el bucle que repinta cada vez 575 00:25:02,319 --> 00:25:03,599 con un tamaño de 576 00:25:03,599 --> 00:25:06,720 circulito distinto, este de aquí 577 00:25:06,720 --> 00:25:08,740 lo he puesto 578 00:25:08,740 --> 00:25:10,339 después del set visible para que se vea 579 00:25:10,339 --> 00:25:12,160 por ejemplo lo tenía puesto antes, por eso no lo veía 580 00:25:12,160 --> 00:25:13,740 lo he puesto después y se acabó 581 00:25:13,740 --> 00:25:16,400 entonces ahora efectivamente 582 00:25:16,400 --> 00:25:17,700 si uno ejecuta esto 583 00:25:17,700 --> 00:25:22,000 pues lo que sale 584 00:25:22,000 --> 00:25:24,799 me hace el primer dibujo, el segundo 585 00:25:24,799 --> 00:25:26,839 vuelvo a hacer el primero, pero ya no lo veo 586 00:25:26,839 --> 00:25:27,460 porque está encima 587 00:25:27,460 --> 00:25:31,019 me hace el primero, pasa un segundo 588 00:25:31,019 --> 00:25:32,640 me hace el otro, pasa un segundo 589 00:25:32,640 --> 00:25:34,680 me hace el grande de nuevo, pero claro, ya no lo veo 590 00:25:34,680 --> 00:25:37,099 porque está el otro 591 00:25:37,099 --> 00:25:39,140 pero sí que me está haciendo el pain 592 00:25:39,140 --> 00:25:40,819 aunque yo ahí no lo vea 593 00:25:40,819 --> 00:25:43,099 lo podría estar viendo si 594 00:25:43,099 --> 00:25:45,099 este n 595 00:25:45,099 --> 00:25:47,079 en lugar de ir variando entre 50 y 100 596 00:25:47,079 --> 00:25:48,359 fuera creciendo, por ejemplo 597 00:25:48,359 --> 00:25:50,579 pero así veo el primero 598 00:25:50,579 --> 00:25:53,240 veo el segundo, el tercero ya no lo veo 599 00:25:53,240 --> 00:25:54,680 porque está encima del primero, etc. 600 00:25:54,799 --> 00:25:57,420 Entonces, ¿qué es lo que nos faltaría? 601 00:25:57,559 --> 00:25:59,420 Claro, este método sobrescrito de aquí 602 00:25:59,420 --> 00:26:03,119 Este método paint de aquí sobrescrito 603 00:26:03,119 --> 00:26:08,579 Dibuja sobre lo que ya había de antes en el panel 604 00:26:08,579 --> 00:26:10,099 Dibuja sobre lo que ya había 605 00:26:10,099 --> 00:26:12,819 Si yo no quiero que dibuje sobre lo que ya había 606 00:26:12,819 --> 00:26:14,839 Sino que dibuje de limpias y de cero 607 00:26:14,839 --> 00:26:18,500 Tengo que volver a llamar 608 00:26:18,500 --> 00:26:23,059 Tengo que llamar al paint del JPanel 609 00:26:23,059 --> 00:26:27,509 super es el objeto 610 00:26:27,509 --> 00:26:29,150 del queredo, la clase de la queredo 611 00:26:29,150 --> 00:26:31,109 tengo que llamar al paint del jPanel 612 00:26:31,109 --> 00:26:33,150 y entonces como me reinicia 613 00:26:33,150 --> 00:26:33,990 el panel de cero 614 00:26:33,990 --> 00:26:37,210 me lo limpia, entonces ahora ya si 615 00:26:37,210 --> 00:26:38,710 si ya lo ejecuto 616 00:26:38,710 --> 00:26:41,309 ahora ya cada segundo que pasa 617 00:26:41,309 --> 00:26:42,789 hace el paint 618 00:26:42,789 --> 00:26:45,109 pero ya sobre un panel limpio 619 00:26:47,049 --> 00:26:47,490 vale 620 00:26:47,490 --> 00:26:53,470 bueno pues ya con este objeto, con todos los métodos 621 00:26:53,470 --> 00:26:55,289 que tiene y 622 00:26:55,289 --> 00:26:57,410 combinando simplemente esto 623 00:26:57,410 --> 00:26:58,789 que para la ejecución 624 00:26:58,789 --> 00:27:00,430 El tiempo que uno quiera 625 00:27:00,430 --> 00:27:01,650 Podéis hacer cualquier cosa 626 00:27:01,650 --> 00:27:02,210 En realidad 627 00:27:02,210 --> 00:27:03,150 ¿Vale? 628 00:27:03,170 --> 00:27:04,630 Con esta estructura de aquí 629 00:27:04,630 --> 00:27:07,250 Relacionada con dibujo 630 00:27:07,250 --> 00:27:08,309 Si uno quiere dibujar 631 00:27:08,309 --> 00:27:09,289 O hacer cualquier chorrada 632 00:27:09,289 --> 00:27:09,950 ¿Vale? 633 00:27:11,650 --> 00:27:12,009 Venga 634 00:27:12,009 --> 00:27:12,470 Y ahora ya se