Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Introducción a Netbeans IDE - Maven - Swing - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Bueno, vamos a ver un IDE muy interesante que es este, NetBeans.
00:00:00
Está escrito en Java y es muy bueno para hacer proyectos en Java.
00:00:07
Tiene una herramienta bastante interesante para hacer herramientas gráficas
00:00:14
y vais a ver que es muy similar a todos los editores, o mejor dicho, a todos los IDEs.
00:00:18
Para empezar, ¿cómo se crea un proyecto?
00:00:24
Bueno, aquí en esta parte voy a tener los proyectos
00:00:26
Para crear un nuevo proyecto de aquella file
00:00:29
New project
00:00:30
Y aquí me dice que elija el tipo de proyecto
00:00:32
Bueno, pues puede ser
00:00:35
Un proyecto Maven, un proyecto Gradle
00:00:37
Voy a elegir Maven
00:00:40
Por eso de que no lo hemos visto antes
00:00:42
Y le damos a continuar
00:00:45
Bueno, otra cosa que venía ahí
00:00:47
Que era un proyecto Hado
00:00:51
Voy a hacerlo otra vez
00:00:52
Lo cierro antes de tiempo
00:00:55
bueno, aquí tengo el proyecto creado, que no me interesa el proyecto, por la razón que sea
00:00:58
bueno, pues aquí se puede borrar, veis que aquí pone borrar
00:01:05
borro el proyecto, sí, sí, quiero borrar todo, incluso
00:01:10
las fuentes, si le dices borrar, solamente te quita el proyecto
00:01:14
del IDE, no borra los ficheros, pero si activo esta opción, borra todo
00:01:18
el proyecto del IDE y los ficheros, bueno, pues me cargo el proyecto
00:01:22
ahí está, está borrando, venga
00:01:27
Mira, tú puedes, curiosamente no me está aquí, esto de aquí es un control de la RAM que está consumiendo.
00:01:32
Como lo tengo a un nivel muy básico, pues no está consumiendo mucha RAM.
00:01:43
Bueno, vamos a crear un nuevo proyecto de nuevo.
00:01:48
Voy a elegir Maven, aunque podría decir Gradle, y aquí elijo el tipo de proyecto.
00:01:52
Pues voy a elegir un proyecto Java.
00:01:57
Siguiente.
00:01:59
Nombre del proyecto, voy a llamarlo Ejemplo 2.
00:02:01
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.
00:02:07
¿Qué no tienes empresa? Pues local.ejemplo2. ¿De acuerdo? Esto si no tenemos nombre de la empresa. Creo el proyecto. Le doy tiempo. ¿Vale?
00:02:24
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
00:02:42
que es un simple hola mundo, si lo doy a ejecutar en este botón de aquí
00:03:12
y me voy aquí a esta pestaña que pone output
00:03:15
lo compila, va a tardar un poquito, porque ahora el Maven
00:03:19
hace exactamente lo mismo que Gradle
00:03:24
busca dependencias, compila y demás, pues está haciendo exactamente lo mismo
00:03:27
como no le he puesto dependencias, pues no ha tardado casi nada, mirad
00:03:32
veis que dice aquí hello world, el típico hello world
00:03:36
de aquí, del típico
00:03:38
Heleware
00:03:40
voy a meterle
00:03:40
aquí más líneas de código, esto
00:03:44
voy a copiarme esta, un poquito más para ver
00:03:46
unas cosas interesantes que tiene
00:03:48
voy a pegarle
00:03:50
varias
00:03:52
antes de eso me voy a crear una variable
00:03:53
in
00:03:56
i igual a 0
00:03:57
y aquí voy a
00:04:00
poner
00:04:02
más
00:04:02
y más más
00:04:05
me voy a copiar esta línea, mira
00:04:08
me la voy a copiar varias veces
00:04:10
por una cuestión
00:04:12
que me interesa ver ahora
00:04:14
me la copié muchas veces
00:04:17
y ahora la tengo copiada
00:04:20
bueno, aquí puedo guardar
00:04:24
si no, control S para guardar
00:04:27
y ahora lo ejecuto
00:04:29
si lo ejecuto, pues vamos a ver
00:04:31
que pondrá hello world y un número
00:04:32
pero muchas veces, es todas las veces que he puesto aquí
00:04:34
le damos paciencia
00:04:39
le he puesto que y vale 0 y más más significa incrementar en 1.
00:04:40
Entonces aquí, aquí valdrá 0, aquí pondrá Hello World,
00:04:45
aquí pondrá 1, 2, 3, 4, porque más más significa aumentar en 1.
00:04:49
¿Lo veis ahí? He puesto 0, luego no he puesto de nada,
00:04:54
luego 1, 2, 3, vale.
00:04:58
Vamos a ver una cosa interesante.
00:05:00
El debug, vamos a empezar por aquí por el debug.
00:05:02
Debug sirve para encontrar errores en nuestros programas.
00:05:04
programas entonces yo puedo elegir una línea buena que me activa el punto de ruptura pulso
00:05:07
botón derecho y donde pone aquí break point dice todo el berth point vale he activado un
00:05:12
punto de ruptura y le voy a poner otro más o menos por aquí a la mitad he puesto dos puntos
00:05:18
de ruptura entonces el código se va a ejecutar hasta que encuentra algún punto de ruptura ahora
00:05:24
ha aparecido esto de acuerdo este menú que no estaba antes esto es para ver pues el modo
00:05:29
de book el modo de errores si le doy a ejecutar va a ejecutar hasta llegar al primer punto de
00:05:36
ruptura vaya me ejecuta el que no es este mes este a ver este ejecuta hasta que llegue el
00:05:41
primer punto de ruptura vale pero que me está ejecutando el proyecto que no es ahora b
00:05:49
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,
00:05:59
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,
00:06:16
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,
00:06:26
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?,
00:06:35
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,
00:06:43
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?
00:06:52
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?
00:07:03
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.
00:07:16
si le voy dando, salta la siguiente instrucción
00:07:37
y así sucesivamente, con este salta la siguiente
00:07:40
instrucción, imaginaos
00:07:42
que quiero, pues estas instrucciones me las quiero
00:07:44
saltar, hemos visto que
00:07:46
voy viendo lo que vale
00:07:48
la variable, imaginaos que estas instrucciones
00:07:50
me las quiero saltar y quiero llegar
00:07:52
a esta instrucción de aquí
00:07:54
¿de acuerdo? directamente, pues tengo aquí
00:07:55
el state
00:07:58
el run to cursor
00:07:59
¿de acuerdo? lo que hace es que vais a ver
00:08:02
que salta estas instrucciones
00:08:04
hasta llegar al siguiente punto de ruptura, ahí está, se ha saltado todas estas instrucciones hasta llegar al siguiente punto de ruptura
00:08:05
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
00:08:14
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
00:08:22
¿Veis? Ha ejecutado ya hasta el final
00:08:32
Se acabó la ejecución
00:08:36
Y me quita el entorno de debug
00:08:37
Vamos a ver
00:08:39
Bueno, los puntos de ruptura se pueden quitar
00:08:42
Aquí simplemente botón derecho
00:08:44
Y lo quito
00:08:46
Bueno, lo he desactivado
00:08:47
Activo
00:08:50
O directamente quitarlo con el tab
00:08:52
Lo quito
00:08:55
O también haciendo clic, lo quito
00:08:57
¿Qué más cosas interesantes tiene?
00:08:59
Vamos a ir viendo los menús
00:09:02
que tiene uno a uno.
00:09:04
Bueno, File, Menu File.
00:09:06
Menu File, pues el típico menú File
00:09:08
de todos los editores de texto o todos los procesadores.
00:09:09
Sí que tiene dos opciones muy interesantes,
00:09:13
que son Export, que exporta un fichero zip,
00:09:14
y luego lo puedes importar como fichero zip.
00:09:16
¿De acuerdo?
00:09:18
Puedo importar ficheros de Clix,
00:09:19
porque Clix es un entorno rey en Java.
00:09:21
Bueno, y aparte, pues imprimir páginas y cosas así.
00:09:24
El típico menú de edición,
00:09:27
sí que tiene una acción curiosa.
00:09:29
Bueno, el típico menú de edición
00:09:32
de deshacer, copiar y pegar y tiene una opción curiosa que es control mayúsculas D
00:09:34
que te permite pegar el historial, o sea, ves aquí todo lo que has ido copiando
00:09:40
y puedes pegar desde el historial, ¿de acuerdo?
00:09:45
Control Z, así puedes luego encontrar, buscar cosas, grabar macros,
00:09:50
o sea, puedes grabar un conjunto de texto y luego cuando dispares la macro se ejecuta ese texto.
00:09:59
Bueno, este es el menú View
00:10:04
Para ver las distintas barras de tareas
00:10:07
Si lo pones en pantalla completa
00:10:12
Si quieres ver solo el editor
00:10:14
Porque fijaros que me ha chupado todo el espacio
00:10:15
Entonces si le doy aquí, control mayúsculas, intro
00:10:17
Se pone menú completo
00:10:22
Y si pongo control mayúsculas, intro
00:10:24
Me quita el editor completo
00:10:26
Esto es muy útil
00:10:30
Esto es muy útil para saber
00:10:32
Lo que estás haciendo
00:10:34
Porque en esta ventanita tan pequeña
00:10:35
Es difícil programar
00:10:37
Puedo navegar por el código
00:10:38
O sea, puedo ir a ficheros, buscar símbolos, etc
00:10:40
Ir a una línea, eso debe ser muy útil
00:10:43
Oye, un error en tal línea
00:10:45
Pues control G y salto a esa línea
00:10:46
O puedo poner bookmarks
00:10:48
El bookmark es un marca páginas
00:10:50
Por ejemplo, voy a poner un bookmark aquí al final
00:10:53
Pues me voy aquí, navegar
00:10:55
Añado un bookmark
00:10:56
Acaba de añadir un bookmark
00:10:58
entonces ahora me voy a otra parte del código
00:11:00
y por alguna razón quiero saltar a ese punto
00:11:02
por la razón que sea, pues me voy
00:11:05
a los bookmarks, salto al siguiente
00:11:06
pulso intro
00:11:08
y veis que salta, bueno me ha saltado
00:11:10
es que tenía un bookmark
00:11:13
en otro, mira, me ha servido de ejemplo
00:11:14
he metido dos bookmarks, este es un bookmark
00:11:16
que tenía en otro fichero, pues me ha saltado
00:11:19
al bookmark, al marca páginas que tenía en otro
00:11:20
fichero, me ha servido
00:11:22
me ha servido de ejemplo, no era el bookmark
00:11:24
al que quería saltar, pero bueno, vamos a ver si salto
00:11:26
ahora
00:11:28
a ver, claro, este
00:11:29
ahora, este es el bookmark
00:11:33
al que quería saltar, ¿vale? pero que veis
00:11:38
que puede saltar incluso a otro fichero que tengo cerrado
00:11:40
fuente
00:11:42
aquí el menú fuente
00:11:44
este es interesante
00:11:46
bueno, imaginaros, por ejemplo
00:11:47
la primera opción, el de formato, esta se usa mucho, imaginaos
00:11:50
que copiáis y pegáis un texto
00:11:52
¿no? copiáis y pegáis
00:11:54
y cuando copias y pegas
00:11:56
lo habitual es que se copia así de mal
00:11:58
¿vale? el texto te queda
00:12:00
suele quedar pues así, mal intentado, esto está mal y esto en un examen te lo puntúan como mal
00:12:02
y de hecho si estás en un proyecto de software y esto no lo respetas seguramente te regañan
00:12:07
y bien hecho por regañarte porque vais a ver que es muy incómodo, entonces marco la parte que quiero reformatear
00:12:12
me voy aquí a source, elijo formato y vais a ver que automáticamente me pone el formato automático
00:12:21
aquí hay más opciones, si os habéis fijado
00:12:29
con estas dos opciones
00:12:33
sirven para, yo selecciono
00:12:34
un cacho de texto
00:12:37
esto es común a todos los editores
00:12:38
selecciono una parte de texto y luego
00:12:41
con el tabulador lo intento
00:12:43
y con mayúsculas tabulador lo desintento
00:12:45
esto se usa mucho y es algo común
00:12:47
en todos los editores
00:12:49
¿qué más tenemos aquí en source?
00:12:50
bueno, subir, bajar, duplicar
00:12:53
poner o quitar comentarios
00:12:55
aquí le he puesto el comentario
00:12:57
Se lo quito, ¿de acuerdo?
00:12:59
Si marcó, pues lo habéis visto que pone
00:13:03
Y quita el comentario, esto es útil
00:13:05
¿Qué más?
00:13:06
Completar código
00:13:09
Esto básicamente lo suelo hacer
00:13:10
Según estás escribiendo
00:13:13
¿De acuerdo? Insertar
00:13:14
Arreglar el código, esto es una opción interesante
00:13:16
Si meto la pata
00:13:19
Si meto la pata, él puede intentar arreglarlo
00:13:20
Bueno, este no lo va a arreglar
00:13:23
Pero bueno, me va a dar la sugerencia
00:13:25
Si pongo aquí ratón, habéis visto que lo he subrayado en rojo
00:13:26
Si pongo aquí retorno, me dice, oye, que espera un punto y coma.
00:13:30
Pulsa al intro para ver las pistas.
00:13:33
Aquí me dice que te falta el punto y coma.
00:13:37
Vale, pues le pongo el punto y coma.
00:13:40
Bueno, este ejemplo ya he dicho que no lo iba a corregir,
00:13:42
pero hay otro tipo de códigos que sí que los corrige, o sea, sí que detecta fallos.
00:13:44
Si aquí a la variable, la voy a nombrar mal, la he llamado con la mayúscula.
00:13:48
De acuerdo, fijaos que de repente aquí me han salido un montón de errores
00:13:55
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.
00:13:58
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.
00:14:12
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.
00:14:37
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.
00:14:57
Entonces, por ejemplo, una cosa que se suele hacer mucho en refactorización es cambiarle el nombre a las variables.
00:15:12
Por ejemplo, y no representa nada, ¿de acuerdo?
00:15:17
A lo mejor me interesa ponerle un nombre más largo, más representativo.
00:15:22
Pues entonces, con mayúsculas, cursor, selecciono lo que quiero, cambiar, me voy a refactorizar, rename,
00:15:25
y aquí le pongo el nuevo nombre que quiero que tenga.
00:15:36
Pues le voy a poner contador.
00:15:38
Y si os fijáis, ahora cuando dé aquí refactorizar, fijaros lo que va a pasar con estas IEs.
00:15:40
¡Hala! Las ha cambiado.
00:15:46
Y lo hace bien.
00:15:48
O sea, no es un simple buscar y reemplazar, porque yo con un editor de toda la vida podía buscar y reemplazar.
00:15:49
No, no. Es que lo hace bien.
00:15:55
Bueno, aquí hay muchas opciones que por ahora nos vamos a saltar.
00:15:57
Ejecutar. Vale, el menú ejecutar.
00:16:02
Este tiene varias opciones interesantes.
00:16:05
Bueno, Build simplemente compila el proyecto.
00:16:07
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.
00:16:09
Oye, ¿compila el código? Sí, pues hala, compila el código. Voy a probar cada uno de los errores para que veáis.
00:16:21
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.
00:16:27
¿de acuerdo? puedes trabajar en una clase
00:16:36
en un sitio, cambiar el nombre a una variable
00:16:39
y esa variable a lo mejor la estás usando en otro archivo
00:16:41
entonces te da un error
00:16:43
puede venir bien
00:16:44
y eso no lo vas a ver
00:16:47
porque no estás editando el otro archivo
00:16:48
pues entonces acabo de cometer un error
00:16:51
adrede, si le doy aquí a compilar
00:16:53
me va a decir aquí el error
00:16:55
ya sé que está aquí
00:16:59
lo estoy viendo, pero si yo no lo viera
00:17:00
por la razón que fuera
00:17:03
me lo va a decir
00:17:04
aquí mirad, me dice
00:17:06
error está en el archivo
00:17:09
el error está en el archivo
00:17:11
ejemplo 2
00:17:13
y me dice que me falta un punto y coma
00:17:14
en la línea 17, lo veis ahí
00:17:17
aquí dice la ruta, el archivo
00:17:19
la línea, la columna
00:17:21
donde espera estar el error
00:17:23
y luego el error que he encontrado, porque hace falta
00:17:24
un punto y coma, si hago clic aquí
00:17:27
me salta donde está el error
00:17:29
me voy a poner en otra línea, me voy a poner en otro sitio
00:17:31
si hago clic en el error
00:17:33
me salta donde está el error
00:17:34
y aquí le pongo el punto incómodo
00:17:37
y acabamos
00:17:39
¿puedo limpiar?
00:17:39
esto es limpiar y compilar
00:17:43
esto es muy interesante
00:17:45
cuando tienes muchas dependencias
00:17:47
y has hecho una limpieza
00:17:48
entonces te has descargado
00:17:49
todas las dependencias
00:17:51
y están ahí molestando
00:17:52
imaginaos que hay un archivo
00:17:54
del que antes dependías
00:17:56
una dependencia
00:17:57
una biblioteca de la que antes dependías
00:17:58
que de repente la quitas
00:18:00
entonces si antes la usabas
00:18:02
Pues la has descargado y está ocupando espacio
00:18:05
Entonces la podemos limpiar
00:18:07
Le damos aquí a limpiar y construir
00:18:09
Entonces borra todo
00:18:11
Vais a ver que tarda mucho
00:18:12
Borra todo y lo hace todo desde el principio
00:18:14
El IDE suele ser muy ahorrativo
00:18:16
O sea, si hay una cosa que ya ha compilado
00:18:20
No la compila otra vez
00:18:22
Que eso puede ser
00:18:23
Para determinadas cosas fuentes de problemas
00:18:26
Bueno, también me está diciendo aquí
00:18:28
Mira, en esta línea me ha generado el fichero hard
00:18:31
de la aplicación, ¿vale?
00:18:35
Mira, me está diciendo aquí que en este sitio, en esta
00:18:37
ruta, no lo había dicho, pero
00:18:39
me está diciendo aquí que ha
00:18:43
generado el fichero hard de la aplicación.
00:18:44
Bueno, pues ahí me ha generado el fichero hard
00:18:47
de la aplicación. Más
00:18:48
cosas. Debug, que ya
00:18:51
lo hemos visto.
00:18:53
Debug. Bueno, aquí en
00:18:55
run también tengo lo de seleccionar el
00:18:56
proyecto principal, que ya lo hemos visto.
00:18:59
Puedo elegir incluso la configuración,
00:19:00
elegir la versión de Java que quiero usar,
00:19:03
porque no me ha preguntado qué versión de Java quiero usar.
00:19:05
Vale, pues aquí puedo, si me voy aquí a cambiar las opciones, esto de Customize, pues puedo cambiar la versión de Java.
00:19:07
Bueno, aquí en Debug puedo hacer el debut del proyecto.
00:19:16
Profile ya lo veremos, ¿de acuerdo?
00:19:20
Team, tienes para, pues cuando trabajamos en equipo tendré un repositorio, pues puedo elegir el repositorio, por ejemplo, Wit.
00:19:22
Bueno, este no lo tengo asignado a ningún repositorio, pero si tengo un proyecto que esté asignado a algún repositorio,
00:19:30
por ejemplo este, este sí que lo tengo en un repositorio
00:19:35
me voy aquí al menú team
00:19:37
pues lo tengo en wit
00:19:38
¿de acuerdo? lo tengo en wit
00:19:41
y aquí puedo pues añadir un archivo
00:19:42
hacer un commit, hacer un
00:19:45
checkout, muy importante
00:19:47
cuando hagáis un push
00:19:48
cuando hagáis un push
00:19:51
está por aquí, no lo veo ahora
00:19:53
¿dónde está el push?
00:19:55
no lo veo ahora, bueno, pues cuando hagáis un push
00:19:59
hacedlo siempre desde aquí
00:20:00
o sea, aquí hay botón derecho
00:20:02
wit
00:20:05
y le haces un... ¿Dónde está push?
00:20:06
No lo encuentro ahora.
00:20:10
Tengo el commit.
00:20:12
Bueno, espera, claro.
00:20:15
Como no he hecho ningún commit, no tengo push.
00:20:16
Bueno, pues cuando hago el commit
00:20:18
me sale el push y le puedo hacer un push.
00:20:19
Si le hacéis un push, hacerlo siempre
00:20:22
dando botón derecho aquí.
00:20:23
Y te vas aquí y haces el push.
00:20:26
El commit y el push. ¿Por qué?
00:20:27
Siempre desde aquí.
00:20:29
Porque si lo haces desde aquí, solamente
00:20:31
te hace el commit del archivo
00:20:33
actual, solamente de este
00:20:36
si has modificado 5 archivos
00:20:37
solamente te va a subir
00:20:40
este, entonces si lo haces
00:20:41
desde aquí, dando botón aquí
00:20:44
derecho a wit
00:20:46
pues te lo va a hacer de todo
00:20:47
el proyecto, no solamente de este archivito
00:20:50
tools, bueno herramientas
00:20:52
varias, o sea puede hacer un div
00:20:54
entre archivos, aplicar un div
00:20:56
con distintas herramientas
00:20:58
el típico menú windows para ver
00:20:59
los distintos elementos
00:21:01
y la ayuda
00:21:03
Vamos a ver otra cosa interesante.
00:21:05
Vamos a añadir algo al proyecto.
00:21:07
Bueno, me voy a mi proyecto, porque tengo una clase por ahora.
00:21:09
Y si quiero añadir otra.
00:21:13
Vamos a añadir otra clase.
00:21:14
Bueno, pues me voy aquí al código, botón derecho, de CNew.
00:21:16
Y puedo añadir una nueva carpeta, una nueva clase de Java.
00:21:19
Pues puedo añadir una nueva clase de Java.
00:21:25
¿De acuerdo?
00:21:28
O puedo añadir otro tipo de cosas.
00:21:29
Vale, voy a añadir una clase de Java.
00:21:32
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.
00:21:33
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.
00:22:04
Y aquí me dice que puedo añadir un swing
00:22:26
Swing.fc es una interfaz gráfica
00:22:28
Ya es un poquito antigua
00:22:32
De hecho está intentando reemplazar la Oracle por otra cosa
00:22:33
Por JavaFX
00:22:37
Si lo vais a ver, JavaFX
00:22:40
Pero bueno, de momento está aquí y se sigue usando
00:22:42
Entonces le voy a decir que me cree una nueva ventana
00:22:45
Una ventana es un frame
00:22:48
Tengo los dialogues
00:22:49
Esto es un dialogue
00:22:52
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.
00:22:55
Esta ventana de aquí, que acabo de abrir, es un dialogue.
00:23:02
Y luego tengo los frames, que los frames son las ventanas convencionales.
00:23:05
¿Qué más puedo hacer? Bueno, y luego tengo un ejemplo de aplicación, que me pone a esta menús.
00:23:10
Voy a hacer primero el ejemplo de aplicación, ¿vale?
00:23:15
Lo habitual es esta, hacer un frame, ¿de acuerdo?
00:23:17
que es una ventana sin nada, en la que pongo cosas
00:23:22
pero
00:23:24
esta me pone ya los menús
00:23:25
le voy a hacer que el siguiente
00:23:27
me dice el nombre, la voy a llamar
00:23:29
de la clase la voy a llamar ventana
00:23:32
y lo doy aquí a finalizar
00:23:33
y me va a crear la nueva clase
00:23:38
ahí la tenemos, ventana
00:23:39
bueno, y aquí me sale
00:23:42
algo más, aquí me sale algo más
00:23:44
veis que pone aquí source
00:23:46
que es el código fuente
00:23:48
que me ha metido un montón de código
00:23:49
las partes en gris es
00:23:52
es que no las toque, que las ha generado él
00:23:54
y no me deja tocarlas, ¿vale?
00:23:56
Esas las ha generado él y va a seguir generando
00:23:58
cosas y no me deja tocarlas. Y luego
00:24:00
en la parte de diseño, aquí está
00:24:02
la ventana que me ha generado, que me ha generado
00:24:04
una simple ventana con un menú. Si le doy
00:24:06
aquí a ver,
00:24:08
pues ves, está la ventana que he generado.
00:24:10
¿De acuerdo? Que la ha generado
00:24:13
hasta elementos. Si yo doy
00:24:14
a ejecutar, vais a ver
00:24:18
que no sale la ventana. Me van
00:24:19
a salir aquí los alamundos
00:24:22
a ver que se está compilando
00:24:23
paciencia, me salen aquí los solamundos
00:24:27
vamos, ahí está
00:24:30
los solamundos, me han salido los solamundos
00:24:34
pero no me ha salido la ventana, ¿por qué? porque en ningún momento
00:24:36
le ha dicho que la ponga, en el proyecto principal
00:24:38
o sea, aquí en el main
00:24:40
tengo que decirle que en algún momento muestre la ventana
00:24:42
vale, pues, para mostrar la ventana
00:24:44
me voy aquí a source
00:24:46
pincho la ventana, me voy a source, y en la parte final
00:24:47
vemos que hay un main
00:24:50
vemos que hay un main
00:24:51
y aquí pone crear y mostrar
00:24:53
el formulario, vale
00:24:56
pues cojo este cachito de código, lo copio
00:24:58
este que pone dentro del main que hay en la clase ventana
00:25:02
pues dentro de este main que hay en la clase ventana, me cojo este cachito de código
00:25:06
que pone crear y mostrar el formulario, lo copio
00:25:09
y lo pego aquí, lo voy a pegar aquí
00:25:14
esto luego ya lo pondría donde corresponde, ahí está
00:25:17
aquí me crea la ventana, bueno me dice algunos errores aquí
00:25:21
mínimos, que de notación
00:25:25
y demás, me da igual, lo dejo ahí
00:25:28
y ahora lo ejecuto, y ahora si lo ejecuto
00:25:30
vais a ver
00:25:32
que ya va a salir la ventanita, va a poner aquí los holamundos
00:25:33
y después de los holamundos
00:25:36
saca la ventana, paciencia
00:25:37
ha puesto los holamundos y aquí está
00:25:45
aquí está la ventana, fijaros que sale con un aspecto
00:25:47
feo, de acuerdo
00:25:49
esto no es el aspecto que sale
00:25:51
en el editor
00:25:53
vale, bueno y aquí me ha puesto
00:25:54
algunos menos y algunos son operativos
00:25:57
Pues este de aquí, Exit, ya funciona.
00:25:59
¿De acuerdo?
00:26:02
Bueno, fijaos lo primero al aspecto.
00:26:03
El aspecto no era el que me sale aquí.
00:26:05
De entrada, el aspecto, cuando me voy aquí a Diseño
00:26:09
y le doy aquí al ojito para verlo,
00:26:12
no es el mismo.
00:26:15
Este aspecto es más bonito.
00:26:16
¿Por qué?
00:26:17
Porque hay que ponerle un tema.
00:26:18
¿Vale?
00:26:20
Vamos a ver cómo se ponen dependencias a un proyecto.
00:26:20
A un proyecto en Maven.
00:26:24
es muy parecido
00:26:25
es muy parecido
00:26:27
a como se hace
00:26:29
en Gradle
00:26:30
es una serie de líneas que tenemos que copiar
00:26:33
en el proyecto principal
00:26:35
¿dónde está el fichero que define el proyecto?
00:26:37
pues este, donde pone
00:26:40
project files, este que pone pon
00:26:41
xml, le doy, y me sale esto
00:26:42
bueno, vais a ver
00:26:45
que es un xml
00:26:47
aquí tengo que añadir, para meter dependencias
00:26:47
dos líneas
00:26:51
dependencias
00:26:52
así como lo he escrito
00:26:55
vale
00:26:57
ahí está, fijaos que hasta me ha autocompletado
00:27:00
el código, cuando pongo dependencias
00:27:03
dependencias
00:27:06
cuando pongo esto
00:27:08
quiere decir que aquí dentro voy a meter las dependencias
00:27:09
voy a buscarle un tema a las
00:27:12
ventanas, un tema que se suele usar
00:27:13
mucho es este
00:27:15
flatlab, que es el típico de los
00:27:17
bueno, si os fijáis el flatlab
00:27:19
este es el mismo que tiene el editor que estoy usando
00:27:21
¿no? este tema
00:27:23
es este tema, y tiene incluso
00:27:26
versión oscura
00:27:28
este tema también lo usa
00:27:29
un entorno de desarrollo mucho
00:27:32
que es el Intel IJ
00:27:34
pues voy a añadirle esta dependencia
00:27:35
el FlagLav, para añadirle la dependencia
00:27:38
bueno, bajo para aquí, para abajo
00:27:41
y dice, mira
00:27:44
la dependencia la tengo aquí en Maven Central
00:27:45
si hago clic en Maven Central
00:27:49
le hago clic
00:27:50
me sale esto, ya estoy en Maven Central
00:27:51
Y me dice, venga, para añadir tu proyecto, mira, si estás en Maven, tienes que añadir estas líneas.
00:27:55
Si estuviéramos en Gradle con Kotlin, tendríamos que añadir esta línea.
00:28:00
Bueno, como hemos elegido crear el proyecto con Maven, me cojo estos códigos de aquí, los copios,
00:28:05
me voy aquí a mi proyecto en la parte de dependencias y lo pego.
00:28:13
Esto lo voy a formatear para que quede bonito.
00:28:17
Ahí está, ya queda bonito.
00:28:23
Y ahí ya tengo la dependencia puesta.
00:28:25
¿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.
00:28:27
fijaos esto que va a ser muy interesante, le voy a dar
00:28:41
de momento
00:28:43
le voy a dar a compilar
00:28:45
para que me baje la dependencia
00:28:46
le doy a compilar para que me baje la dependencia
00:28:48
simplemente me interesa que me baje la dependencia
00:28:53
y ahora vamos a ver cuando me baje la dependencia
00:28:54
bueno, dejo ahí que se baje la dependencia
00:28:57
se está bajando la dependencia
00:28:58
y mientras se la baja, voy a ver cómo se usa
00:28:59
me tengo que ir siempre
00:29:03
a la página del manual
00:29:04
de la biblioteca para ver cómo se usa
00:29:06
y me dicen que simplemente que añade
00:29:08
esta línea, hay que añadir esta línea
00:29:10
¿De acuerdo?
00:29:13
La tengo aquí en esta página y tengo que añadir esta línea.
00:29:14
La voy a añadir.
00:29:17
Me va a dar un error.
00:29:19
Me interesa que me dé el error.
00:29:21
La añado.
00:29:22
Y me da un error.
00:29:23
Error.
00:29:24
¿Por qué?
00:29:25
Porque no he importado la biblioteca.
00:29:25
He añadido el módulo al proyecto Maven, pero la biblioteca no la he importado.
00:29:28
La tengo que importar.
00:29:33
Bueno, pues me pincho aquí.
00:29:34
Me dice, no puedo encontrar el símbolo.
00:29:38
Doy aquí.
00:29:40
A ver, espera.
00:29:41
Hazme caso.
00:29:43
Aquí.
00:29:44
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.
00:29:44
He puesto los Hello World, ¿veis?
00:30:10
Y ya me sale con la apariencia correcta.
00:30:14
¿De acuerdo?
00:30:17
¿Tengo más apariencias?
00:30:18
Sí, mirad.
00:30:19
Tengo más apariencias.
00:30:20
Fijaos que ahí pone un tema oscuro.
00:30:22
Voy a poner el tema oscuro.
00:30:23
Por, con, punto.
00:30:24
Voy copiando.
00:30:27
Lo que voy a hacer es copiar esto.
00:30:28
Tal cual viene arriba.
00:30:30
Hasta que el momento complete.
00:30:34
Y aquí tengo los temas.
00:30:36
Mira, tengo aquí el tema de Árcula.
00:30:37
¿De acuerdo?
00:30:40
Ahora mismo estoy usando el tema Like.
00:30:41
Este de aquí.
00:30:42
¿Vale? Pero tengo el tema
00:30:43
Darkula, pues lo importo
00:30:45
Que es el tema oscuro
00:30:47
Control-C y ahora aquí me copio
00:30:49
Esta línea, este cachito de aquí
00:30:51
Y para usar
00:30:53
El tema Darkula
00:30:55
Lo pongo aquí
00:30:56
Pongo el setup
00:30:58
Y esta línea la comento
00:31:00
Porque si no se puede liar
00:31:04
¿De acuerdo?
00:31:05
¿Vale? Según he comentado
00:31:08
Esta línea vais a ver que aquí arriba me dice
00:31:11
Oye, que este imporna lo estás usando
00:31:12
pues lo voy a comentar
00:31:14
estas cosas que no uso al final
00:31:16
se suelen limpiar, o sea cuando ya
00:31:18
haces la refactorización limpias este código
00:31:20
que no usas, porque esto pueden ser pruebas
00:31:22
vamos a ver como queda el tema oscuro
00:31:24
vamos a ver como
00:31:26
queda el tema oscuro, que este suele ser
00:31:28
el típico que usan todos los
00:31:30
editores de desarrollo
00:31:32
de hecho al NetBeans se le puede poner
00:31:33
perfectamente el tema oscuro, hay una opción por ahí
00:31:36
de aquí en
00:31:38
configurar, que le puedes poner
00:31:40
el tema oscuro, veis le hemos puesto el tema oscuro, le voy a dejar
00:31:42
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.
00:31:44
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,
00:31:55
por ejemplo ese menú
00:32:10
va a ejecutar una función
00:32:11
y en este caso para ese menú es esta
00:32:14
que simplemente lo que está haciendo es un
00:32:16
system.exit
00:32:18
lo que hace es que corta, para la ejecución
00:32:19
y devuelve al sistema operativo
00:32:23
este código, en este caso
00:32:24
un 0, lo habitual es
00:32:26
devolver el código 0, el código 0
00:32:28
es que no se han producido errores en la ejecución
00:32:30
si devuelvo un código 1, 2, 3
00:32:32
le estoy diciendo al sistema operativo que
00:32:34
la aplicación ha parado
00:32:36
con errores, y el error va a ser el 1, el 2
00:32:38
o el 3, o el número que yo ponga ahí
00:32:41
ese número va a tener significado
00:32:43
para el programador, yo tengo que asignarle valores
00:32:44
a esos números, ¿de acuerdo?
00:32:46
por supuesto, a cualquier elemento del menú
00:32:51
a cualquier elemento del menú
00:32:53
si hago doble clic
00:32:56
doble clic, aquí está
00:32:59
¿vale? pues me añade la función
00:33:01
esa función no estaba creada, y aquí me añade
00:33:03
la función para la acción
00:33:05
como he hecho clic sobre el menú
00:33:07
about, pues aquí pondría
00:33:09
lo que quiero que se haga en el menú
00:33:11
de about, pues un system
00:33:12
out
00:33:14
print
00:33:16
en un momento voy a hacer
00:33:18
un system out print que se haga por consola
00:33:20
no voy a hacer nada más
00:33:23
que diga
00:33:23
about, vale
00:33:25
o sea, cuando hago clic en el menú about
00:33:28
en consola va a poner about
00:33:30
le doy run, lo ejecuto
00:33:32
paciencia
00:33:36
fijaos que no puedo tocar las partes en gris
00:33:40
no me deja de editor, ¿vale?
00:33:43
tal, y ahora si voy a
00:33:48
hell y pincho en about
00:33:49
lo veis que ha puesto aquí about, ¿no?
00:33:51
lo veis aquí que ha puesto about
00:33:53
aquí en mi ventanita, hell
00:33:54
about, me pone about, ¿vale?
00:33:57
ahí podría hacer una operación o lo que sea
00:33:59
¿de acuerdo?
00:34:01
esta ventana sigue sin hacer cosas interesantes
00:34:03
bueno
00:34:05
le doy aquí escape, me cierro esto
00:34:06
eso es, ¿vale? bueno, ¿qué cosas
00:34:09
qué elementos puedo añadir aquí a la ventana?
00:34:11
Pues puedo añadir bastantes. Esto me tengo que ir al menú de Swing.
00:34:13
O sea, hay un tutorial de Swing. Si nos buscamos aquí a Google
00:34:17
y buscamos Swing Java
00:34:22
Tutorial. De cómo hacer aplicaciones
00:34:27
en Swing. A ver... Bueno, el habitual, bueno, ahí tengo un curso
00:34:31
pero el habitual es el de Oracle. Este. El de Oracle
00:34:39
este es el clásico. Este es el tutorial
00:34:42
de toda la vida, el que se ha usado, y aquí me dice pues todos los elementos
00:34:47
de swing, como hacer un drag and drop, un drag and drop es arrastrar y soltar un fichero
00:34:51
por ejemplo, los distintos componentes de swing
00:34:55
¿de acuerdo? ¿cómo usarlo con NetBeans?
00:34:59
que eso ya lo estamos usando, ¿vale? pues aquí, modificar la vista
00:35:03
el aspecto, que es lo que estamos haciendo, y me dice aquí distintos
00:35:07
elementos, ¿vale? pues aquí en Agatiz Startup
00:35:11
Te da una primera lección de cómo usar Swing.
00:35:14
Bueno, pues el típico menú, el típico tutorial es este.
00:35:20
Aquí me tengo que aprender cómo se usa.
00:35:23
Vamos a aprender dos elementos que son muy fáciles, bueno, tres elementos que son muy fáciles de usar.
00:35:25
Tenemos el label, la etiqueta.
00:35:30
Bueno, cuando quiero añadir un elemento simplemente lo arrastro y lo suelto.
00:35:34
Y lo voy a poner ahí.
00:35:37
Bueno, imaginaos que lo pongo por aquí.
00:35:39
De acuerdo, si le doy a previsualizar, vas a ver que lo trata de mantener ahí.
00:35:41
¿Veis que si cambio el tamaño, él trata de mantenerlo ahí?
00:35:47
¿Veis? Incluso lo tapa.
00:35:49
Si me lo llevo a un borde, vais a ver que aparecen unas líneas de guía.
00:35:53
Y si lo pego a la línea de... ¿Veis que ya han aparecido las líneas de guía?
00:35:56
Si la pego a la línea de guía de arriba, se ve mejor que la de abajo.
00:35:59
Si la pego a la línea de línea de abajo,
00:36:03
significa que cuando yo cambio el tamaño de la ventana, en lugar de desaparecer,
00:36:08
¿lo veis que la sigue? Sigue el tamaño de la ventana.
00:36:11
Si la pego aquí, ahí,
00:36:15
pues la ha pegado en esa posición.
00:36:19
Pues va a tratar de mantener esa posición cuando cambie la ventana, que esa posición es fácil de mantener.
00:36:20
Más cosas. Si le hago doble, bueno, si le hago botón derecho, puedo cambiar el texto, porque he añadido un label.
00:36:25
Un label es una etiqueta, simplemente muestra texto. Pues voy a poner aquí, precio.
00:36:32
Voy a hacer una pequeña aplicación que yo le meta un precio y me devuelva el IVA, el precio con el IVA.
00:36:40
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.
00:36:45
change variable name
00:37:03
hay algunos que no interesa
00:37:05
este por ejemplo lo podría haber dejado sin cambiar
00:37:08
¿de acuerdo?
00:37:10
pero
00:37:13
por ejemplo
00:37:13
le puedo cambiar su nombre a
00:37:16
preciolabel y ahora cuando vaya a java
00:37:18
si me quiero referir a este elemento tengo que
00:37:20
poner preciolabel, o sea
00:37:22
aquí en el código fuente cuando por alguna
00:37:23
razón me quiera referir ahí tengo que poner
00:37:26
preciolabel ¿vale? de momento
00:37:28
no voy a usar ese
00:37:31
el campo de texto.
00:37:32
El campo de texto es para meter, pues, texto.
00:37:36
Entonces, me voy a ponerlo aquí
00:37:38
siguiendo las líneas de guía
00:37:40
que lo ponga ahí pegado arriba
00:37:42
y pegado al siguiente elemento.
00:37:44
Este ya se me ha ido.
00:37:46
Al soltar el clic se me ha ido.
00:37:48
Ahí está.
00:37:49
Si os habéis fijado las dos líneas de guía
00:37:50
le he puesto que lo ponga arriba
00:37:52
y pegado a este elemento.
00:37:53
Incluso puedo coger y estirar esta.
00:37:54
Es que le puedo cambiar el tamaño.
00:37:57
Y le voy a tratar de pegar a la otra línea de guía.
00:37:58
De aquí.
00:38:01
eso es, ¿vale?
00:38:01
así, como lo he pegado a esta línea de guía
00:38:05
de aquí, cuando amplio el tamaño de la
00:38:07
ventana, veis que el elemento se amplía
00:38:09
si no lo hubiese pegado a esa línea de guía
00:38:11
pues mantendría su tamaño
00:38:13
bueno, le voy a cambiar aquí, a esta sí que
00:38:15
necesito cambiarle el nombre, la vamos
00:38:18
a llamar
00:38:22
precio test fill
00:38:23
conviene mantener
00:38:30
el tipo de dato, ¿eh? esto es un
00:38:31
test fill, pues conviene mantener
00:38:33
el tipo de dato, pues sabes lo que estás manejando
00:38:35
y le voy a cambiar aquí también
00:38:37
el texto, voy a poner 0
00:38:39
¿de acuerdo?
00:38:41
y ahora voy a añadir otro
00:38:44
bueno, un botón
00:38:46
¿dónde está el botón? aquí, botón
00:38:47
el botón que lo voy a poner
00:38:49
aquí
00:38:52
lo he pegado hasta dos líneas de guía
00:38:55
le voy a cambiar el nombre
00:38:57
a la variable, le voy a llamar
00:38:59
calcular
00:39:04
calcular
00:39:05
y le voy a cambiar el texto por supuesto
00:39:11
calcular
00:39:13
iba
00:39:17
¿de acuerdo? y ahora me falta un último
00:39:19
label que es donde voy a mostrar el resultado
00:39:22
lo vamos a poner
00:39:24
ahí
00:39:28
¿de acuerdo? los labels solamente sirven
00:39:31
para mostrar texto, pues ahí
00:39:35
voy a mostrar el resultado
00:39:36
resultado
00:39:37
resultado
00:39:43
y aquí voy a poner, le voy a volver a cambiar
00:39:46
el nombre a la variable
00:39:48
label, resultado
00:39:49
bueno
00:39:55
hay una cosa en la que no me he estado fijando
00:39:57
que son las propiedades de los objetos
00:40:00
que así que me va a interesar
00:40:02
tocarlas
00:40:04
bueno, aquí tengo más elementos
00:40:04
eso luego voy a usar ayuda, pero por ejemplo
00:40:07
tengo un campo para introducir contraseñas
00:40:09
una barra de progreso
00:40:12
el textarea, bueno tengo el textfield
00:40:13
y el textarea, el textarea es para meter
00:40:18
textfield es meter una línea
00:40:19
de texto, y el textarea es meter
00:40:22
muchas líneas de texto, esto es lo que usaría
00:40:24
para hacer un editor de texto
00:40:25
Los típicos combo box, estos son los desplegables
00:40:27
Los botones de encender
00:40:30
Bueno, los checkbox, que son los botones
00:40:32
De encender y apagar, ¿de acuerdo?
00:40:34
¿Vale? Los típicos
00:40:37
Botones de check
00:40:38
Y aquí tengo
00:40:38
Bueno, más elementos, y luego tengo incluso
00:40:41
Otros elementos de aquí arriba, los containers
00:40:43
Que son elementos para contener a otros elementos
00:40:45
O sea, por ejemplo
00:40:47
El split panel es muy típico
00:40:48
Tengo aquí un ejemplo de split panel
00:40:51
Tengo aquí un ejemplo de split panel que voy a enseñar
00:40:53
A ver
00:40:57
Ah, por eso yo tenía el marcador
00:41:00
Aquí tengo otro ejemplo
00:41:02
Esto es un split panel
00:41:06
Es el típico elemento, ¿veis?
00:41:10
Esto es un split panel
00:41:13
Le he puesto dos botones
00:41:14
Y es para cambiar el tamaño de uno y otro
00:41:16
O sea, aquí metería elementos, aquí metería más elementos
00:41:20
Y con esto le cambio el tamaño
00:41:23
Este es el split panel
00:41:25
Bueno
00:41:27
Bueno, volvemos a nuestro proyecto
00:41:28
Tengo el resultado, venga, ya
00:41:31
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.
00:41:33
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.
00:41:53
fijaros, el texto
00:42:07
el texto
00:42:10
que mete el usuario, lo estamos metiendo aquí
00:42:12
en esta cosita, ¿no? en el precio
00:42:14
text field, pues venga, pongo aquí
00:42:15
precio
00:42:18
test, hay que malescribir
00:42:22
field
00:42:31
punto, vale
00:42:32
y ahora, me sale
00:42:37
como es un objeto
00:42:39
me está mostrando todas las
00:42:41
funciones o todos los métodos que tiene ese objeto
00:42:43
me interesa uno que se llama get test
00:42:45
O sea, conseguir el texto que se está
00:42:47
Está escrito, me interesa
00:42:49
De los campos de texto me interesan
00:42:50
Dos campos, el gettest y el settest
00:42:53
Ay, se me ha olvidado una cosa
00:42:55
Me salta una cosa, bueno
00:43:00
Lo cuento al final
00:43:01
Que va a quedar más bonito
00:43:03
Pues busco gettest, casi lo escribo y tardo menos
00:43:04
Los programadores somos así de bajos
00:43:12
Ahí está, gettest
00:43:15
Gettest devuelve lo que ha escrito el usuario
00:43:20
El texto se devuelve siempre
00:43:23
en stream, ¿vale? Los usuarios siempre meten texto, el ordenador
00:43:25
entiende texto, esto va a ser el texto
00:43:29
que me ha introducido el usuario, ¿de acuerdo? Es buena idea
00:43:31
hacerle un trim, trim significa quitar los espacios en blanco del principio
00:43:39
y del final, ¿de acuerdo? El usuario cuando escribe
00:43:45
mete mucha porquería, entonces lo primero que vamos a hacer es a lo que meta
00:43:48
el usuario le hago un trim para que me quite esos espacios en blanco que va a meter muchas veces
00:43:53
el usuario. O sea, si yo ahora, por ejemplo, me voy aquí a diseño e intento
00:43:57
ver la aplicación, pues llega el usuario y puede hacer esto.
00:44:02
Meter aquí un montón de espacios y ya el número. ¿De acuerdo? Pues estos
00:44:06
espacios del principio o del final no me
00:44:09
interesan. Esto de aquí no me interesa. Entonces le hago un trim.
00:44:13
Le hago un trim. ¿De acuerdo? Tengo el texto. Vale.
00:44:20
Me está diciendo ahora mismo que esta variable la he puesto en
00:44:25
en su radio en amarillo, me dice que nunca ha sido usada.
00:44:28
Vale. La voy a convertir a float.
00:44:32
Tipo float. A texto.
00:44:36
Que esto va a ser el precio.
00:44:39
Y voy a hacer un parse.
00:44:41
Tengo que convertir el texto a un número.
00:44:44
Vale. Pues se hace con float.parseFloat.
00:44:49
Ahí lo veis. Lo veis ahí, ¿no?
00:44:57
ParseFloat.
00:45:00
Y el texto.
00:45:02
Bueno, fíjate que él mismo se ha dado cuenta de que tengo que meterle el texto.
00:45:03
Fijaos que ya me está saliendo aquí una cosa en amarillo.
00:45:07
¿De acuerdo?
00:45:11
Vale, ya me está diciendo aquí cosas en amarillo.
00:45:13
Vale, pues mira, me dice que la variable texto nunca ha sido usada.
00:45:17
Ahora me va a decir más cosas cuando la use.
00:45:20
Bueno, no quería borrar.
00:45:22
Ahora voy a calcular el IVA.
00:45:26
Flat precio con IVA.
00:45:29
Pues el precio con IVA es coger el precio y multiplicar por 1.21.
00:45:36
Ya tengo el precio con IVA.
00:45:43
¿De acuerdo?
00:45:45
Y ahora, quiero mostrar el resultado.
00:45:46
¿El resultado dónde lo voy a mostrar?
00:45:48
Bueno, si os fijáis en mi diseño que he hecho, tengo aquí este label.
00:45:51
Este label de aquí, que es el resultado label.
00:45:56
Pues lo quiero mostrar en resultado label.
00:45:59
Pues me tengo que ir aquí y poner aquí.
00:46:00
resultado
00:46:04
resultado
00:46:06
label, punto, y hay una opción
00:46:08
que se llama setTest.
00:46:11
Esto lo voy a escribir
00:46:14
para no...
00:46:15
setTest, ahí lo tenemos.
00:46:16
setTest
00:46:19
Si espero un poquito me suelta la ayuda.
00:46:19
Bueno, está tardando mucho.
00:46:23
Vale, bueno, pues
00:46:26
ahí en esa ventana me debería salir la ayuda.
00:46:27
Bueno, setTest
00:46:30
y aquí voy a poner
00:46:30
el precio
00:46:31
con
00:46:37
ay
00:46:40
se me ha ido el, como tengo un
00:46:42
top patch, se me ha ido
00:46:45
vale, precio con IVA
00:46:46
¿de acuerdo? voy a borrar toda esta porquería
00:46:49
lo pongo bonito
00:46:51
no sé
00:46:55
por qué
00:46:57
me lo sigue marcando
00:46:57
¿por qué me lo marca? ah, vale
00:47:00
que esto es un double
00:47:11
vale, se me estaba diciendo
00:47:11
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.
00:47:15
¿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.
00:47:32
Vamos a ver esto funcionando, mi maravillosa aplicación
00:47:59
Me quedan dos cositas
00:48:02
A ver si no explota
00:48:04
Bueno, vais a ver que programar con un IDE
00:48:07
Es muy fácil, a los novatos
00:48:12
Se les suele recomendar lo contrario, programar sin IDE
00:48:13
Porque como te hice todos los errores
00:48:16
Pues...
00:48:18
Ah, mira, de hecho me va a interesar
00:48:22
Mostraros esto
00:48:23
Bueno, aquí tengo la consola
00:48:25
Y nos fijamos en la consola
00:48:28
Vamos a calcular los precios con IVA
00:48:29
El IVA de 100, vamos a ver si lo he hecho bien
00:48:31
pincho aquí en calcular IVA
00:48:34
y cuando pincho en calcular IVA
00:48:36
me pone, ¿lo habéis visto?
00:48:37
que ha puesto aquí el precio
00:48:40
¿de acuerdo? ¿qué es lo que ha hecho?
00:48:41
al hacer click sobre el botón
00:48:43
me ha ejecutado esta función
00:48:45
me ha ejecutado este cachito de código
00:48:47
que he puesto aquí, ¿qué está haciendo este cachito de código?
00:48:49
pues ha cogido
00:48:52
del precio test fill
00:48:53
del precio test fill
00:48:55
que es este de aquí
00:48:57
la cantidad
00:48:58
le ha quitado la porquería con esto de aquí
00:48:59
con el trim, o sea, con el getTest
00:49:03
consigo el texto, con el trim la limpio
00:49:05
la he pasado de texto
00:49:06
a número, hago la operación
00:49:09
que tengo que hacer, es sumarle el IVA
00:49:11
y luego por último, el resultado
00:49:13
que es este de aquí, pues le pongo
00:49:15
el resultado, ya está
00:49:17
bueno, esto se puede mejorar, cierro la aplicación
00:49:18
vale
00:49:21
bueno, aquí por ejemplo, me está pidiendo a gritos
00:49:24
que le ponga el símbolo
00:49:27
de euro, ¿no? a mí me lo está pidiendo
00:49:31
a gritos, y luego está como
00:49:33
muy pequeño, o sea, el precio
00:49:35
El resultado final está como muy pequeño
00:49:37
¿Se puede cambiar el tipo de letra y cosas así?
00:49:40
Sí, que es lo que me faltaba por contar
00:49:42
Si pincho en un elemento
00:49:43
Pincho en un elemento
00:49:46
Puedo pinchar aquí o aquí
00:49:48
Que me esté seleccionado, ¿vale?
00:49:49
Si lo selecciono, vais a ver que aquí aparecen sus propiedades
00:49:52
Las propiedades del elemento
00:49:54
Voy a pinchar en otro para que se vea que cambian
00:49:55
¿Veis? Que han cambiado las propiedades
00:49:57
¿De acuerdo? Pues aquí salen sus propiedades
00:50:00
Por ejemplo, en el campo de texto
00:50:04
Puedo decir que sea editable o no editable
00:50:06
¿De acuerdo? Puede haber campos de texto que no sean editables
00:50:08
porque estén desactivados
00:50:11
¿De acuerdo? Puedo cambiarle el color
00:50:13
de fondo. Ah, mira, es muy interesante. El tipo de letra
00:50:15
Voy a cambiarle el tipo de letra. ¿Veis que le está
00:50:17
poniendo este tipo de letra? Pues mira, le voy a poner
00:50:19
un tipo de letra así más grande, ¿no?
00:50:21
Le voy a poner negrita y le voy a
00:50:23
poner un tamaño bestial
00:50:25
Ok. Ahí está
00:50:26
¿Vale? Lo habéis visto, ¿no?
00:50:29
Con estas cositas de aquí puedo
00:50:31
cambiar las propiedades de los elementos
00:50:33
Claro, tendré que saber lo que significan
00:50:35
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.
00:50:37
¿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.
00:51:07
¿Eso por qué es? Porque los ordenadores se equivocan.
00:51:30
Sí, sí, se equivocan.
00:51:33
El ordenador piensa en binario.
00:51:35
Y al pasar determinados números a binario, tienen infinitos decimales.
00:51:36
O muchos decimales.
00:51:42
Claro, el ordenador tiene una memoria limitada.
00:51:43
Entonces tiene que cortar por algún lado.
00:51:46
Pues corto por aquí.
00:51:48
Y eso hace que se pierda precisión.
00:51:49
Y es lo que provoca que el ordenador se equivoque.
00:51:52
¿Veis? ¿Esto cómo lo maquillamos?
00:51:56
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.
00:51:57
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.
00:52:10
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.
00:52:24
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.
00:52:36
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.
00:52:50
vais a ver que te dan un porrón de código
00:52:57
que tienes que copiar
00:52:59
aquí, acordaos que en Maven
00:53:00
es el pon.xml
00:53:03
que le copias aquí
00:53:05
y ya está, y te lo hace.
00:53:07
- Materias:
- Informática, Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado básico
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado medio
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado básico
- Subido por:
- Pedro Luis L.
- Licencia:
- Reconocimiento - No comercial - Sin obra derivada
- Visualizaciones:
- 138
- Fecha:
- 18 de noviembre de 2024 - 10:42
- Visibilidad:
- Público
- Centro:
- IES VILLABLANCA
- Duración:
- 53′ 14″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 106.22 MBytes