martes, 26 de julio de 2016

Entorno Integrado de Desarrollo

Entorno Integrado de Desarrollo

 Es un entorno de programación que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI)

Los IDE poseen un marco de trabajo amigable para la mayoría de los lenguajes de programación tales como C++, PHP, Python, Java, C#, Delphin, Visual Basic, entre otros.

 Características

  Un IDE debe tener las siguientes características:
  1.  Multiplataforma
  2. Soporte para diversos Lenguajes de programación
  3. Integracion con Sistemas de Control de Versiones
  4. Reconocimiento de sintaxis
  5.  Extensiones y Componentes para el IDE
  6. Integración  con Framework populares
Existen diferentes versiones de los IDEs pero estos son algunos del software que utilizan IDE, estos son:
  1. Eclipse: Software Libre. Es uno de los entornos Java mas utilizados a nivel profesional. El paquete básico de Eclipse se puede expandir mediante la instalación de plugins para añadir funcionalidades a medida que se vayan necesitando.
  2. NetBeans: Software Libre. Otro de los entornos Java muy utilizados, también expandible mediante plugins. Facilita bastante el diseño gráfico asociado a aplicaciones Java.
  3. BlueJ: Software Libre. Es un entorno de desarrollo dirigido al aprendizaje de Java (entorno académico) y sin uso a nivel profesional. Destaca por ser sencillo e incluir algunas funcionalidades dirigidas a que las personas que estén aprendiendo tengan mayor facilidad para comprender aspectos clave de la programación orientada a objetos.
  4. JBuilder: Software Comercial. Se pueden obtener versiones de prueba o versiones simplificadas gratuitas en la web, buscando en la sección de productos y desarrollo de aplicaciones. Permite desarrollos gráficos.
  5. JCreator: Software Comercial. Se pueden obtener versiones de prueba o versiones simplificadas gratuitas en la web. Este IDE esta escrito en C++ y omite herramientas para desarrollos gráficos, lo cual lo hace mas rápido y eficiente que otros IDEs.
Ventajas de los IDEs
  1. La curva de aprendizaje es muy baja
  2. Es muy ágil y optimo para los usuarios que no son expertos en manejo de consola.

 Interfaz Gráfica de Usuario

La interfaz  de usuario, conocida tambien como GUI del ingles graphical user interface, es un programa informatico que actua de interfaz de usuario, utilizando un conjunto de imagenes y objetos graficos para representar la informacion y aciones disponibles en la interfaz.
 
Su principal uso, consiste en proporcionar un entorno visual sencillo para permitir la comunicacion con el sistema operativo de un máquina o computador. 

Tipos de interfaces gráficas de usuario 

Las GUI y ZUI
 
Los tipos de interfaces graficas de usuarios (GUI) que se enuentran en juegos de computadora, y las GUI avanzados basados en realidad virtual, se usan con frecuencia en tareas de investigacion.
 
Interfaz de usuario de pantalla táctil
 
Algunas GUI son diseñadas para cumplir con los rigurosos requisitos de os mercados verticales. Estos se conocen como las GUI de uso especifico.Un ejemplo de un GUI de uso especifico es la ahora familiar pantalla táctil o touchscreen (pantalla que al ser tocada efectua los comandos del raton en el software). Se encuentra actualmente implementado en muchos restaurantes y en muchas tiendas de autoservicios de todo el mundo.
 
Interfaz natural de usuario (NUI)
 
Las NUI son aquellas en las que se interactua con un sistema, aplicacion, entre otros, sin utilizar dispositivos de entrada como rton, teclado, lapiz optico, entre otros. En lugar de estos se utilizan las manos o las yemas de los dedos.

Ventajas y Desventajas

Ventajas: 
  1.  Facilita el manejo de los procedimientos
  2. Cada comando puede ser visualizado en pantalla mediante una imagen que lo representa.
  3. Proporiona mecanismos estandar de control como ventanas y cuadros de dialogo.
  4. Permite interactuar al usuario con el sistema de una forma mas facil.
Desventajas:
  1. Utiliza mas recursos del sistemas.
  2. Es mas complejo realizar un sistema de este tipo.
  3. Son mas costosos

Herencia, Polimorfismo e Interface


 

 Herencia

 Concepto

 Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes. Es la relación entre una clase general y otra clase mas especifica.

La herencia es la transmisión del código entre unas clases y otras. Para soportar un mecanismo de herencia tenemos dos clases: la clase padre y la/s clase/s hija/s. La clase padre es la que transmite su código a las clases hijas. En muchos lenguajes de programación se declara la herencia con la palabra "extends". 

 Tipos de Herencia 

Simples y multiples 
  1. Simples: permite que una clase herede las propiedades y metodos de su superclase en una adena jerárquica. Sólo puede heredar de una clase base y de ninguna otra. 
  2. Multiples: es aquella en que cada clase puede heredar las propiedades y metodos de cualquier numero de clases. Puede heredar las características de varias clases base, es decir, puede tener varios padres
De implementacion y de interfaz
  1. De implementacion: la implementacion de los objetos es heredada. Puede sobreescribirse en las clases derivadas.
  2. De interfaz: solo se hereda a interfaz, no hay implementacion a nivel de clase base (interfaces en Java, clases abstractas en C++).

Ventajas y Desventajas

Ventajas
  • Ayuda a los programadores a ahorrar código y tiempo, ya que la clase padre ha sido implementada y verificada con anterioridad, restando solo referenciar desde la clase derivada a la clase base (que suele ser extends, inherits, subclass u otras palabras clave similares, dependiendo del lenguaje).
  • Los objetos pueden ser construidos a partir de otros similares. Para ello es necesario que exista una clase base (que incluso puede formar parte de una jerarquía de clases más amplia).
  • La clase derivada hereda el comportamiento y los atributos de la clase base, y es común que se le añada su propio comportamiento o que modifique lo heredado.
  • Toda clase pueden servir como clase base para crear otras 
Desventajas

Si la jerarquía de clases es demasiado compleja, el programador puede tener problemas para comprender el funcionamiento de un programa. Además puede volverse más complejo detectar y resolver errores de programación, por ejemplo al modificar una clase padre que afecta el funcionamiento de las subclases.

Otro problema es que las subclases se deben definir en código, por lo que los usuarios del programa no puede definir subclases nuevas. Otros patrones de diseño permiten que los usuarios puedan definir variantes de una entidad en tiempo de ejecución.

Polimorfismo 

Concepto

 Es la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad que puede contener valores de diferentes tipos durante la ejecución del programa.


Clasificación

Se puede clasificar el polimorfismo en dos grandes clases:
  • Polimorfismo dinámico (o polimorfismo paramétrico) es aquél en el que el código no incluye ningún tipo de especificación sobre el tipo de datos sobre el que se trabaja. Así, puede ser utilizado a todo tipo de datos compatible.
  • Polimorfismo estático (o polimorfismo ad hoc) es aquél en el que los tipos a los que se aplica el polimorfismo deben ser explícitos y declarados uno por uno antes de poder ser utilizados.
El polimorfismo dinámico unido a la herencia es lo que en ocasiones se conoce como programación genérica.
También se clasifica en herencia por redefinición de métodos abstractos y por método sobrecargado. El segundo hace referencia al mismo método con diferentes parámetros.

 Interfaces

Concepto

Es un conjunto de métodos abstractos y de constantes cuya funcionalidad es la de determinar el funcionamiento de una clase, es decir, funciona como un molde o como una plantilla. Al ser sus métodos abstractos estos no tiene funcionalidad alguna, sólo se definen su tipo, argumento y tipo de retorno.

 Características de las Interfaces:

  • Las Interfaces solo pueden tener visibilidad de package o public.
  • Todos los métodos declarados en una Interfaz son public y abstract, si no se le indica, Java lo pondrá implícitamente.
  • Los métodos de una Interfaz no pueden ser estáticos, ya que estos deben ser redefinidos, y al ser estáticos les sería imposible.
  • Todos los atributos declarados en una Interfaz son "public static final" y deberán tener asignado un valor constante. Todos los nombres de constantes van en "MAYÚSCULAS"
  • Una clase puede implementar una o más interfaces.
  • Una Interfaz puede heredar de una o varias interfaces, pero no pueden implementar NADA. Como sabemos, las clases solo pueden heredar de otra clase, pero las Interfaces pueden hacer herencia múltiples.
  • Todas las clases que implementen una interfaz deben de redefinir todos los métodos de esa interfaz.
  • Las interfaces no tienen constructor, por lo que no es posible crear objetos con el operador "new" de ésta.
  • Si se implementa en una clase una Interfaz, y esta Interfaz hereda de otra, la clase deberá implementar todos los métodos de la interfaz que implementa y de los métodos que esta hereda.
  • Para la herencia de las interfaces se pone la palabra clave extends y se ponen todas las interfaces que se deseen separadas por comas.
  • Una Interfaz puede ocultar constantes y métodos heredados de otras Interfaces si los vuelve a declarar en la clase que hereda.

 Ejemplo


 




jueves, 21 de julio de 2016

Mi primer programa gráfico en Gambas

El entorno gráfico

Las prácticas anteriores mostraban aplicaciones de consola, que nos recuerda a los viejos tiempos de otros sistemas operativos o la forma de trabajar de los hackers informáticos. En realidad, hacer ese tipo de programas no demuestra el potencial de Gambas, puesto que son realmente simples e igualmente fáciles de realizar en otros lenguajes o cualquier vieja versión de BASIC.

Página inicial de Gambas













Mi primer programa gráfico

Es mejor hacer el programa “Hola Mundo” para el entorno gráfico que inunda los escritorios de los ordenadores actuales. Para ello empezaremos igual que antes, arrancando Gambas y creando un Nuevo proyecto siguiendo exactamente los mismos pasos.
Hacemos clic en la opción Nuevo proyecto. El proyecto está formado por una serie de archivos que en Gambas están SIEMPRE situados dentro de un único directorio. En él puede haber, a gusto del desarrollador, distintos subdirectorios y organizar todo como se desee, pero cualquier gráfico, dato y código que forme parte de la aplicación estará dentro de él.
Aparece la ventana con los distintos tipos de proyectos a crear.
  • Marcamos la opción Aplicación gráfica QT. Hacemos clic en el botón Siguiente.
Aplicación gráfica
  • Seleccionamos el directorio donde se guardarán todos los ficheros necesarios para el proyecto. El sitio ideal sería dentro de nuestra carpeta Documentos. Creamos un directorio llamado BASIC y dentro de él otro directorio llamado 2MGRAFICO en el que se creará un directorio para cada uno de los proyectos que vamos a hacer. Así crearemos el directorio 2MGRAFICO y tendremosDocumentos/BASIC/2MGRAFICO. Tras esto hacemos clic en el botón Siguiente.

Creación del directorio para nuestro proyecto
  • Le damos el nombre "01PrimerProyGraf" y el título "Proyecto gráfico para escribir Hola Mundo" al proyecto, como pone en la imagen. Después hacemos clic en OK.
Información del proyecto
  • Confirmación de datos
    En última instancia, se muestra la pantalla que confirma la creación del proyecto. Una vez confirmados estos datos, ya no podremos efectuar cambios en nuestro proyecto, como es el nombre, directorio, etc. Hacemos clic en el botón OK.
Al acabar el proceso aparecerá de nuevo la ventana de proyecto, pero en esta ocasión tendrá una rama más en el árbol: Formularios.
Un formulario es el área donde se diseña la interfaz gráfica de la aplicación, es decir, donde se insertan objetos como botones, cuadros de texto, listas, casillas de verificación, etc. Los formularios se corresponderán con las ventanas que la aplicación mostrará.
Y recordemos para qué servían las otras ramas:
  • Classes y Modules, que son para distintos tipos de archivos de código fuente.
  • Data, cuyo nombre indica su finalidad, almacenar ahí los archivos de datos que la aplicación requiera.

Entorno de programación
  • Hacemos clic con el botón derecho del ratón sobre el árbol del proyecto.
  • Elegimos en el menú contextual: Nuevo→Formulario.
Nuevo formulario
  • Por simplicidad, en este caso no cambiaremos el nombre.
Nuevo formulario: el nombre
  • Pulsamos en el botón OK.
  • Hacemos clic con el botón derecho del ratón sobre el nuevo formulario y marcamos la opción Clase de inicio.
  • Aparecerá en pantalla la ventana del formulario y un panel con sus propiedades.
Entorno de trabajo
  • Vamos a mostrar algunos elementos que nos van a hacer falta. Accedemos al menú Vista→Caja de herramientas, o pulsamos directamente la tecla F6. Con esto mostraremos la caja de herramientas que contiene los elementos que podremos añadir a nuestro formulario.
Vemos la caja de herramientas
Vamos a añadir ahora elementos a nuestro formulario. Nos fijamos en la Caja de herramientas. Entre los múltiples iconos que hay en ella podemos distinguir el icono del botón Icono del botón.
  • Hacemos clic en el icono del botón Icono del botón.
  • Dibujamos en el formulario un botón, arrastrando con el ratón y el botón izquierdo pulsado, para dar la forma que queramos.
Dibujado el primer botón
Gambas escribe el texto Button1 sobre el botón, pero como ese texto no es demasiado intuitivo lo mejor es cambiarlo.
  • Para ello hay que pinchar en el botón y después, en la ventana de propiedades, hacer un clic en la línea donde pone Text. Ahora se puede escribir el nuevo texto, por ejemplo “Púlsame”.
Modificando el texto del botón
  • Volvemos al formulario y hacemos doble clic en el botón. Se nos abrirá un documento para que podamos escribir el código fuente que queramos.
Código fuente para el botón
  • Escribimos el código siguiente:
Código fuente
Con este código lo que hacemos es que cuando el usuario pulse el botón, aparezca una ventana con el mensaje "Hola mundo".
  • Ejecutamos el programa. Pulsamos en el botón con el símbolo del Play Ejecutar programa, que está en la pantalla del proyecto.
  • Se mostrará el formulario que hemos creado.
Programa en ejecución
  • Si hacemos clic en el botón “Púlsame”, se visualizará el texto “Hola Mundo”.
Mensaje
  • Guardamos los cambios del proyecto.
  • Cambia el texto a mostrar para que ponga tu nombre y apellidos.
  • Comprueba que se muestra el texto correctamente.
  • Guardar los cambios del proyecto.
Ahora vamos a añadir un nuevo botón para poder salir del programa.
  • Hacemos clic en el icono del botón.
  • Dibujamos en el formulario un nuevo botón.
  • En la ventana de propiedades, hacemos un clic en la línea donde pone Text y escribimos el texto “Salir”.
Añadimos el botón salir
  • Volvemos al formulario y hacemos doble clic en el nuevo botón. Se nos abrirá un documento para que podamos escribir el código fuente que queramos. Escribimos el código siguiente debajo del anterior:
Código fuente

Gambas

Gambas

Es un lenguaje de programación libre derivado de BASIC ( de ahí que Gambas quiere decir Gambas Almost Means Basic). Se distribuye con Licencia GNU GPL. Permite crear formularios con botones de comandos, cuadros de texto y muchos otros controles y enlazarlos a bases de datos como MySQL, PostgreSQL o SQLite ademas, de facilitar la creación de aplicaciones muy diversas como videojuegos (utilizando OpenGL), aplicaciones para dispositivos móviles, aplicaciones de red ( con manejo avanzado de protocolos HTTP, FTP, SMTP, DNS), entre otras.

Gambas nació como respuesta a la necesidad de tener un entorno de desarrollo rápido de aplicaciones (RAD) que cumple la necesidad de muchos programadores del lenguaje de MICROSOFT de tener un lenguaje de programación sencillo para plataformas libres (como GNU/LINUX y BSD)

Componentes

  1. Un compilador
  2. Un interprete
  3. Un archivador
  4. Una interfaz de usuario
  5. Un entorno de desarrollo integrado

Herramientas de gambas

Controles gráficos

Gambas aporta una serie de controles básicos para desarrollar una interfaz gráfica. En la práctica anterior hemos visto la caja de herramientas disponible para formularios.



Objeto
Nombre del objeto
Descripción
Label
Sirve para colocar etiquetas o títulos.


TextLabel
Cumple las misma función que el Objeto Label con la diferencia que acepta mayor cantidad de palabras o texto dentro de el.

Separator
Dibuja una línea horizontal o vertical en el formulario o ventana.

PixtureBox
Sirve para mostrar una imagen.

ProgressBar
Es una barra de progreso, se usa por lo general para indicarle al usuario es estado en el que se encuentra un determinado proceso.

Button
El objeto Botón sirve para que al darle click sobre el ejecute una acción.

checkBox
Es un cuadro de selección que permite colocar múltiples opciones para que el usuario escoja o seleccione las que prefiera.
(Se puede seleccionar varias acciones a la vez).

RadioButton
Su función es muy similar al checkBox con la diferencia que solo se puede seleccionar una sola acción a la vez.
ToolButton
Cumple la acción del objeto Button (botón) con la diferencia que cambia de color cuando se pasa el cursor por encima de el.

ComboBox
Muestra una lista desplegable de selección.

TextBox
Es un cuadro de texto, el usuario puede introducir texto en el
permitiendo escribir números, letras y símbolos pero en una sola linea (no permite saltos de linean).

SpinBox
Es un objeto que contiene números, estos números aumentan o disminuyen dándole click en los botones que están al lado derecho o presionando las tecla de navegación (flechas) el rango de los números depende del programador.

TextArea
Permite que el usuario inserte una gran cantidad de caracteres(letras, números y símbolos) en múltiples líneas(permite el salto de línea)

WridView
Es una tabla que contiene filas, columnas, celdas. En sus celdas se pueden mostrar imágenes y texto. Generalmente se usa para mostrar un tipo de reporte o para reflejar los datos contenidos en una base de datos

ColorButton
Es un botón que al presionar  sobre el muestra una ventana para la selección de color.

ValueBox
Es una caja numérica que solo acepta números, horas y fechas aunque se puede modificar sus propiedades para que acepte letras pero no acepta espacios ni símbolos.

DateChooser
Es un calendario y se usa para que el usuario escoja fechas.

FileChooser
Este objeto permite navegar por los directorios(carpetas) que se encuentran alojadas en la computadora.

Fontchooser
Muestra un cuadro de selección para el tipo de letra tamaño y forma de los caracteres.

Framer
Este objeto es de tipo contenedor se pueden insertar otros objetos dentro de en y en la parte superior  del objeto se puede introducir texto.

tabstrip
Este objeto es de tipo contenedor igual que el objeto Framer con la diferencia que en la parte superior se pueden agregar unas pestañas que a subes pueden contener mas objetos independientes de otras pestañas

ScrollView
Este objeto pertenece a la clase contenedora permite contener dentro de el otros objetos. En este objetos se puede agregar mayor cantidad de objetos divide a que pose unas barras de desplazamientos que le permiten al usuario y al programador moverse dentro de el arriba y abajo.

Timer
Es un objeto que se usa por lo general para colocar reloj. Es un temporizador se puede acelerar o disminuir su frecuencia(velocidad en hora, minutos, segundo, milenramas de segundo etc.) la velocidad de este objeto esta relacionado con la velocidad o frecuencia del procesador de la computadora.


Tabla de las propiedades de los objetos
Propiedad
Descripción
Name
Esta propiedad se usa para asignarle un nombre a un objeto , formulario, modulo o clase.
Arrangement
Sirve para alinea los objetos que se encuentran en el formulario.
Background
Cambia el color de fondo.
Border
Establese el tipo de borde
Enabled
Habilita o deshabilita un objeto o formulario
Font
Sirve para asignar el tipo de letra y tamaño de las misma.
Foreground
Cambia el color de la letra.
FullScreen
Expande la ventana o formulario, ocupa toda la pantalla sin dejar bordes
Height
Incrementa o decrementa la altura de un objeto (cambio de tamaño)
Icon
Sirve para establecer el icono (imagen) que se muestra en la parte superior izquierda de la ventana.
Maximized
Expande la ventana (maximizado)
Minimized
Hace que se minimice la ventana.
Mause
Sirve para establecer el tipo de cursor (la forma del puntero) que tomara cuando este sobre el objeto.
Persistent
Esta propiedad hace que una ventana aun siga activa aun después de haberse serrado la ventana. Se usa cuando se quiere el valor de una variable publica que se encuentra en otra ventana aun cuando esta se cierre.
Picture
Establecer una imagen dentro de un formulario o objeto.
SkipTasbar
Hace que la ventana que se este ejecutando lo se muestre en la barra de tarea.
Stacking
Esta propiedad hace que las ventanas se coloque al fondo o al frente sobre las demás ventanas o programas que se estén ejecutando.
Text
Le agrega texto a un objeto
ToolBox
Hace que la ventana o formulario se ejecute pero de forma invisible
Tootip
Hace que se muestre un mensaje por unos pocos segundos cuando se para el mouse sobre el objeto al cual se le haya agregado la propiedad
Visible
Hace que un objeto se visible o invisible que aparezca o desaparezca el objeto
Width
Cambia el anchor de una objeto.
X
Ubica al objeto en el eje de las X (cambia la posición) de los objetos o ventanas Horizontalmente.
Y
Ubica al objeto en el eje de las Y (cambia la posición) de los objetos o ventanas Verticalmente.
Transparent
Esta propiedad hace que los objetos Label y TextLabel coloque su fondo transparente.
Alignment
Se una para alinear al centro derecha izquierda el texto o imagen de un objeto.
Stretch
Esta propiedad es del objeto PixtureBox y se una para q la imagen se adapte al tamaño de este objeto.
Value
Esta propienda depende del objeto que se este tratando por ejemplo si se trata con un checkBox y RadioButton establece si esta seleccionado el objeto mientras si se habla de un ValueBox es el valor que contiene y si se Refiere al objeto colorButton es el color que contiene o que se selecciono.
List
Esta propiedad agrega las opciones que saldrán el la lista desplegable el objeto ComboBox.
MaxLength
Esta propiedad es exclusiva de los objetos contenedores de texto que permiten el ingreso de texto o números al usuario. Lo que hace es limitar la cantidad de letras que se intoxicasen. Ejemplo. Textbox, combobox, valuebox
Password
Esta propiedad hace que los caracteres que se escriben en una caja de texto (textBox o comboBox) no sean visibles para evitar que otra persona pueda leer al secreto como una contraseña.
ReadOnly
Evita que se pueda ingresar algún tipo de caracteres por parte usuario dentro TextBox, ValueBox, comboBox o cualquier otro objeto que permita el ingreso de texto por parte del usuario.
MinValue
Esta propiedad pertenece al objeto SpinBox, y sirbe para indicar el valor mínimo del objeto. Es decir si se especifica MinValue=5 impedirá que el usuario introduzca valores menores a 5.
Step
Es el rango en el cual va aumentando y disminuyendo los valores del objeto SpinBox
Grid
Coloca las lineas de separación de dada fila y columna.. de un gridView, TableView, DataView.
Count
Esta propiedad pertenece al objeto TabSTrip sirve para establecerel numero de pestañas que puede tener el objeto.
ScrollBar



















 

Contenedores y Organizadores

Los contenedores y organizadores son controles que nos ayudan a organizar dentro de ellos los controles que contengan(llamados hijos) y además también admiten otros contenedores dentro de el mismo (también llamado hijos)



Panel: es el contenedor más simple



Frame:  Es un contenedor con borde (panel) y etiqueta
La etiqueta la definimos en la propiedad .text


TabStrip

Un control contenedor con pestañas.
              Propiedades:
              .count: Una propiedad muy importante ya que indica el numero de pestañas que va a tener el Tabstrip.
              .text: El nombre de la pestaña se lo asignamos a la propiedad
              .picture: podemos  poner un icono en la pestaña, indicandoselo en esta propiedad
              .orientation: las pestañas pueden tener varias orientaciones (normalmente la veremos arriba "top")



TabPanel

Es similar a un TabStrip que utiliza las bodes finos


 ScrollView: es un panel pero añadido dos scrollview. Es usado para por ejemplo ver fotografias de grandes dimensiones.


 Hsplit: divide el panel en  partes de forma Horizontal. Esta división la podemos desplazar para aumentar la visibilidad de unos de los subpanels. Por cada control añadido dentro del split, se produce una división. Lo normal es usar otro contenedores dentro del Hsplit y asi organizar formularios con gran número de controles


 Vsplit: divide el panel en dos partes de forma Vertical. Esta división la podemos desplazar para aumentar la visibilidad de unos de los subpanels


Organizadores:

 Hbox: es un contenedor que ordena los controles que contenga horizontalmente. Si los anchos de los controles "hijos" (contenidos) es mayor al ancho del Hbox, no se veran.
La propiedad .autoresize=true  hace que cambie de tamaño (en el caso del HBox  modifica el ancho), para que quepan todos los controles que tenga dentro.



Hpanel: es muy parecido al HBox, pero con la ventaja de que si los controles contenidos supera el ancho, se van creando filas para que los controles se coloquen, lo cual permite que se vean todos los controles hasta superar el alto del HPanel.


 Vbox: Es un contenedor que ordena los hijos (controles que contenga) verticalmente (de arriba a abajo)


Vpanel: igual que el Hpanel, pero empieza de arriba a abajo, y luego va creando columnas de controles.