Una interfaz gráfica de usuario (GUI) creada utilizando el Plataforma Java NetBeans Se compone de varias capas de contenedores. La primera capa es la ventana utilizada para mover la aplicación por la pantalla de su computadora. Esto se conoce como el contenedor de nivel superior, y su trabajo es dar a todos los demás contenedores y componentes gráficos un lugar para trabajar. Normalmente para una aplicación de escritorio, este contenedor de nivel superior se realizará utilizando el
clase.
Puede agregar cualquier cantidad de capas a su diseño GUI, dependiendo de su complejidad. Puede colocar componentes gráficos (por ejemplo, cuadros de texto, etiquetas, botones) directamente en el
, o puede agruparlos en otros contenedores.
Las capas de la GUI se conocen como la jerarquía de contención y pueden considerarse como un árbol genealógico. Si el
es el abuelo sentado en la parte superior, entonces el próximo contenedor puede considerarse como el padre y los componentes que tiene como hijos.
Para este ejemplo, crearemos una GUI con un
que contiene dos
y un
. El primero
tendrá un
y
. El segundo
tendrá un
y un
. Solo uno
(y, por lo tanto, los componentes gráficos que contiene) serán visibles a la vez. El botón se usará para cambiar la visibilidad de los dos
.
Hay dos formas de construir esta GUI usando NetBeans. El primero es escribir manualmente el código Java que representa la GUI, que se trata en este artículo. El segundo es usar la herramienta NetBeans GUI Builder para construir Swing GUI.
Para obtener información sobre el uso de JavaFX en lugar de Swing para crear una GUI, vea ¿Qué es JavaFX??
Nota: El código completo para este proyecto está en Ejemplo de código Java para crear una aplicación GUI simple.
Configurando el Proyecto NetBeans
Crear un nuevo Java Proyecto de aplicación en NetBeans con una clase principal Llamaremos al proyecto
Punto de control: En la ventana Proyectos de NetBeans debe haber una carpeta GuiApp1 de nivel superior (si el nombre no está en negrita, haga clic con el botón derecho en la carpeta y elija
). Debajo de
La carpeta debe ser una carpeta de paquetes de origen con
llamado GuiApp1. Esta carpeta contiene la clase principal llamada
.Java.
Antes de agregar cualquier código Java, agregue las siguientes importaciones en la parte superior del
clase, entre el
línea y el
:
Estas importaciones significan que todas las clases que necesitamos para hacer esta aplicación GUI estarán disponibles para que las usemos.
Dentro del método principal, agregue esta línea de código:
Esto significa que lo primero que debe hacer es crear un nuevo
objeto. Es un buen atajo, por ejemplo, programas, ya que solo necesitamos una clase. Para que esto funcione, necesitamos un constructor para
clase, así que agregue un nuevo método:
En este método, colocaremos todo el código Java necesario para crear la GUI, lo que significa que cada línea de ahora en adelante estará dentro del
método.
Nota de diseño: Es posible que haya visto el código Java publicado que muestra la clase (es decir,
) extendido desde un
. Esta clase se utiliza como la ventana principal de la GUI para una aplicación. Realmente no hay necesidad de hacer esto para una aplicación GUI normal. La única vez que desearía extender el
clase es si necesita hacer un tipo más específico de
(echa un vistazo a
para más información sobre cómo hacer una subclase).
Como se mencionó anteriormente, la primera capa de la GUI es una ventana de aplicación hecha de un
. Para crear un
objeto, llame al
constructor:
A continuación, estableceremos el comportamiento de nuestra ventana de aplicación GUI, utilizando estos cuatro pasos:
1. Asegúrese de que la aplicación se cierra cuando el usuario cierra la ventana para que no continúe ejecutándose de forma desconocida en segundo plano:
2. Establezca un título para la ventana para que la ventana no tenga una barra de título en blanco. Agrega esta línea:
3. Establezca el tamaño de la ventana, de modo que la ventana tenga el tamaño adecuado para los componentes gráficos que coloque en ella.
Nota de diseño: Una opción alternativa para configurar el tamaño de la ventana es llamar al
método de la
clase. Este método calcula el tamaño de la ventana en función de los componentes gráficos que contiene. Debido a que esta aplicación de muestra no necesita cambiar el tamaño de su ventana, solo usaremos
método.
4. Centre la ventana para que aparezca en el medio de la pantalla de la computadora para que no aparezca en la esquina superior izquierda de la pantalla:
Agregar los dos JPanels
Las dos líneas aquí crean valores Para el
y
objetos que crearemos en breve, usando dos
matrices Esto hace que sea más fácil completar algunas entradas de ejemplo para esos componentes:
Crea el primer objeto JPanel
Ahora, creemos el primero
objeto. Contendrá un
y un
. Los tres se crean a través de sus métodos de construcción:
Notas sobre las tres líneas anteriores:
- los
JPanel
la variable se declara final. Esto significa que la variable solo puede contenerJPanel
que se crea en esta línea El resultado es que podemos usar la variable en una clase interna. Será evidente por qué queremos más adelante en el código. - los
JLabel
yJComboBox
que les pasen valores para establecer sus propiedades gráficas. La etiqueta aparecerá como "Frutas:" y el cuadro combinado ahora tendrá los valores contenidos en elfruitOptions
matriz declarada anteriormente. - los
añadir()
método de laJPanel
coloca componentes gráficos en él. UNJPanel
usa FlowLayout como predeterminado gerente de diseño. Esto está bien para esta aplicación, ya que queremos que la etiqueta se ubique al lado del cuadro combinado. Mientras agreguemos elJLabel
primero, se verá bien:
Crear el segundo objeto JPanel
El segundo
sigue el mismo patrón. Agregaremos un
y un
y establezca los valores de esos componentes para que sean "Verduras:" y el segundo
formación
. La única otra diferencia es el uso de
método para ocultar el
. No olvides que habrá un
controlando la visibilidad de los dos
. Para que esto funcione, uno debe ser invisible al principio. Agregue estas líneas para configurar el segundo
:
Una línea que vale la pena señalar en el código anterior es el uso de
método de la
. los
El valor hace que la lista muestre los elementos que contiene en dos columnas. Esto se llama "estilo de periódico" y es una buena manera de mostrar una lista de elementos en lugar de una columna vertical más tradicional.
Agregar toques finales
El último componente necesario es el
para controlar la visibilidad de la
s. El valor pasado en el
El constructor establece la etiqueta del botón:
Este es el único componente que tendrá un detector de eventos definido. Un "evento" ocurre cuando un usuario interactúa con un componente gráfico. Por ejemplo, si un usuario hace clic en un botón o escribe texto en un cuadro de texto, se produce un evento.
Un oyente de eventos le dice a la aplicación qué hacer cuando ocurre el evento.
usa la clase ActionListener para "escuchar" un clic del botón por parte del usuario.
Crear el oyente de eventos
Debido a que esta aplicación realiza una tarea simple cuando se hace clic en el botón, podemos usar una clase interna anónima para definir el detector de eventos:
Esto puede parecer un código aterrador, pero solo tiene que desglosarlo para ver qué está sucediendo:
- Primero, llamamos al
addActionListener
método de laJButton
. Este método espera una instancia de laActionListener
clase, que es la clase que escucha el evento. - A continuación, creamos la instancia de
ActionListener
clase declarando un nuevo objeto usandonuevo ActionListener ()
y luego proporciona una clase interna anónima, que es todo el código dentro de las llaves. - Dentro de la clase interna anónima, agregue un método llamado
acción realizada()
. Este es el método que se llama cuando se hace clic en el botón. Todo lo que se necesita en este método es usarsetVisible ()
para cambiar la visibilidad de laJPanel
s.
Agregue los JPanels al JFrame
Finalmente, necesitamos agregar los dos
s y
al
. Por defecto, un
usa el administrador de diseño BorderLayout. Esto significa que hay cinco áreas (en tres filas) de la
que puede contener un componente gráfico (NORTE, {OESTE, CENTRO, ESTE}, SUR). Especifique esta área utilizando el
método:
Configure el JFrame para que sea visible
Finalmente, todo el código anterior habrá sido en vano si no configuramos el
ser visible:
Ahora estamos listos para ejecutar el proyecto NetBeans para mostrar la ventana de la aplicación. Al hacer clic en el botón cambiará entre mostrar el cuadro combinado o la lista.