Está en la página 1de 67

UNIVERSIDAD NACIONAL DEL SANTA

FACULTAD DE INGENIERIA

E.A.P INGENIERIA DE SISTEMAS E INFORMATICA

MANUAL DE PROGRAMACION VISUAL CON JAVA

PARTE - 2

Ing. Mirko Manrique Ronceros

Primera Edición
INDICE

Uso del Objeto JFrame 03


Objetos Contenedores Jpanel y JScrollPanel 17
Objeto Jpanel 17
Objeto JSCrollPanel 19
Objetos Contenedores JTabbedPanel y JDesktoPanel 33
Objeto JTabberPanel 33
Objeto JDesktopPanel 34
Objetos Menús JMenúBar y JMenúItem 53
Objeto JMenúBar 53
Objeto JMenúItem 53
Objetos Menús JRadioButtonMenúItem, JSeparador y Jmenú 62
Objeto JRadioButtonMenúItem 63
Objeto JSeparador 63
Objeto JMenú 63
Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

USO DEL OBJETO JFRAME


Objeto de Control JFrame
Hasta el momento hemos hablado muy poco o casi nada del objeto Jframe, es decir,
acerca del formulario. Es un objeto contenedor por excelencia debido a que es una
interfase que facilita hacer los procesos que necesita el usuario de la aplicación. En
este objeto podemos situar todos los demás componentes que necesitemos para el
desarrollo de la interfase de nuestra aplicación.

En la figura anterior muestra la jerarquía de herencia de este componente desde


Object, que es el padre de todas las clases de Java. Los métodos estarán repartidos a
lo largo de toda la jerarquía. Así por ejemplo, resulta intuitivo que debiera haber un
método para cambiar el color de fondo del formulario, pero él no tiene ningún método
para ello, lo tiene Componet.

Propiedades más usadas:


• Title: Permite definir el título del formulario, es decir, la etiqueta de la la barra
de título.

Ing. Mirko Manrique Ronceros Página 3


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

• Font: Se establece el tipo de letra y el tamaño que servirá de base a cualquier


expresión que se coloque con cualquier objeto de control dentro del formulario.

• Enabled: Permite habiltar o inhabilitar el uso del objeto.

Métodos más usados:


• setTitle(): Añade el títutlo en el formulario.
• setSize(): Establece el tamaño del formulario.
• setLocation(): Establece la ubicación del formulario dentro de la pantalla.
• setVisible(): Establece la visibilidad del objeto. Usa valores booleanos.
• setIconImage(): Establece el ícono que se colocará al lado izquierdo del título
del formulario.
• show(): Permite cargar un formulario a la maemoria para ser vista por el
usuario.
• Hide(): Permite ocultar al formulario.

Ing. Mirko Manrique Ronceros Página 4


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Aplicación
Construye una aplicación que permite ingresar el nombre del postulante, la cantidad
de preguntas bien contestadas y la cantidad de preguntas mal contestadas. La suma
entre las preguntas bien y mal contestadas no debe superar a 100. Por cada pregunta
bien contestada vale 4.08 puntos y por cada pregunta mal contestada vale -1.04
puntos. Se agregarán los datos antes mencionados en objetos JList y se debe obtener
el postulante de mayor puntaje o el pustulante de menor puntaje en un segundo
formulario. Usar los atributos y métodos de la clase Jframe.

Solución:
1. Procedemos a crear un proyecto denominado Práctica, la misma que
contendrá al paquete práctica. A partir de éste paquete vamos a crear un
formulario con el objeto Jframe, seleccionando dicho paquete y al dar click con
el botón derecho del mouse se muestra un menú flotante. Seleccionemos
Formulario JFrame.

2. A continuación, colocaremos como nombre al formulario frmPostulante.


Luego dar click en el botón de comando Finish (en caso de que la versión de
NetBeans es en castellano entonces dar click en el botón de comando
Terminar).

Ing. Mirko Manrique Ronceros Página 5


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

3. Se muestra el entorno de desarrollo de NetBeans y no olvidemos de dar click en


el botón derecho del mouse sobre el formulario y establece AbsoluteLayout en
SetLayout.

Ing. Mirko Manrique Ronceros Página 6


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

4. Procedemos a colocar los objetos de control, tal como lo apreciamos en el


siguiente diseño de formulario.

5. Procedemos a quitar los ítems de cada uno de las cajas de listas.

6. Los objetos de control en el diseño del formaulario tienen los siguientes


nombres:

Ing. Mirko Manrique Ronceros Página 7


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

7. Ahora bien, si observamos en el diseño del formulario, los cuatro objetos JList
no tienen ítems. Los objetos JList referidos a Postulante, Buenas, Malas y
Puntaje, se llenarán de ítems al momento de usar el botón de comando
Agregar. Siendo cutro JList entonces necesitamos cuatro modelos del tipo
DefaultListModel, uno para cada Jlist, para lo cual debemos incluir en el
código de la programación el paquete swing con la siguiente instrucción:

Ahora procedemos a escribir la definición de las variables del tipo


DefaultListModel en la clase frmPostulante.

Ing. Mirko Manrique Ronceros Página 8


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

8. Una vez definido las 4 variables de memoria del tipo DefaultListModel, en el


método constructor se debe indicar que la variable modelo1 es para la caja de
lista lstPost, la variable modelo2 para la caja de lista lstBuenas, la variable
modelo3 para la caja de lista lstMalas y la variable modelo4 para la caja de
lista lstPuntaje. Antes haremos uso del método setTitle() para definir el título
del formulario en la barra de título cuya expresión es “Postulantes al Examen de
Admisión”. También hacemos que los botones de comando Agregar y Eliminar
se inhabilite su uso desde la ejecución de la aplicación. Los cuadros de textos
txtPost, txtBien y txtMal deben inhabilitarse su uso en el momento de la
ejecución. Haremos uso de los métodos del objeto JFrame llamdados setSize()
y setLocation() para darle el tamaño apropiado al formulario y ubicación
dentro de la pantalla. El operador this hace referencia al formulario
frmPostulante. Sólo escribe lo que señala la llave de color rojo.

9. Procedemos a definir cuatro atributos o propiedades para la clase


frmPostulante. Las líneas de código programación lo puedes escribir después
de las líneas de código que definieron a las cuatro variables de tipo
DefaultListModel.

Ing. Mirko Manrique Ronceros Página 9


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Los atributos mayor y menor es para almacenar el mayor y menor puntaje de


los postulantes ingresados en los objetos JList y los atributos postMay y
postMen es para almacenar el nombre del postulante de mayor puntaje y el
nombre del postulante de menor puntaje.
10. Debajo de la
definición de los
atributos, vamos a
construir los
métodos que nos
permitan dar y
obtener el valor a
cada uno de los
atributos.
Comenzaremos
por los atributos
mayor y menor
definiendo los
siguientes
métodos:

Ing. Mirko Manrique Ronceros Página 10


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

El método setMayor() tiene un parámetro llamado m de tipo double y con el


operador void significa que no tiene el método valor de retorno. Este método
sirvirá almacenar en el atributo mayor el valor del parámetro m. En cambio el
método getMayor() no tiene parámetro pero su valor de retorno es double, es
decir, que éste método arroja o se puede obtener el valor almacenado en el
atributo mayor. Lo mismo sucede para los métodos setMenor() y
getMenor(). Vamos a proceder a crear los métodos para los atributos
postMay y postMen.

11. Vamos a proceder a programar en el botón de comando Nuevo.

Ing. Mirko Manrique Ronceros Página 11


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

12. Ahora programemos en el botón de comando Agregar.

Procedemos a declarar las variables buenas y malas como enteras y puntaje


como real (double). Las variables de memoria enteras reciben los valores
ingresados en los cuadros de textos txtBien y txtMal y la variable puntaje se
almacena el resultado según el valor de las preguntas bien y mal contestadas.
Con la sentencia IF evalúa que la cantidad de preguntas contestadas no
superen a 100. Si no supera a 100 procedemos agregar en las cajas de listas a
través de las variables de tipo DefaultListModel.
13. Programemos en el objeto JList denominado lstPost en el evento
ValueChanged.
En esta programación se busca que al momento de seleccionar a un postulante
en la caja de lista lstPost, se seleccione inmediatamente la cantidad de
preguntas bien contestadas, la cantidad de preguntas mal contestadas y el
puntaje en las demás cajas de listas. Se finaliza habilitando el uso del botón de
comando Eliminar.

Ing. Mirko Manrique Ronceros Página 12


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

14. Programemos en el botón de comando Eliminar en el evento


Eliminamos lo seleccionado con el método remove perteneciente a los modelos
de cada caja de lista.

15. Es hora de crear el segundo formulario. Para ello seleccionamos el paquete


práctica y en la opción New (nuevo) elegimos Formulario JFrame. A éste
formulario se llamará frmConsulta, siendo el diseño el siguiente:

16. Es necesario que los objetos JRadioButton pertenezcan a un


ButtonGroup.

Ing. Mirko Manrique Ronceros Página 13


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

17. Procedemos a colocar los nombres a los objetos de control.

18. El formulario frmConsulta será activado al momento de dar click en el botón de


comando btnConsultar del primer formulario frmPostulante. Volvamos al
primer formulario y programemos en el botón Consultar.

Ing. Mirko Manrique Ronceros Página 14


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

La programación se inicia con la declaración de variables de tipo entero, real y


cadena de caracteres. En la variable cuenta se almacena la totalidad de ítems
existentes en la caja de lista lstPuntaje a través de la variable modelo4. Si la
variable cuenta es mayor o igual a 1 entonces se procede con una sentencia for
a buscar el mayor puntaje y la posición (índice) dentro de la caja de lista
correspondiente al mayor puntaje. Luego con el método setMayor() se asigna el
valor de la variable may al atributo mayor perteneciente a la clase
frmPostulante. La misma idea se hace con el método setMenor() y con las
variables pmay y pmen se almacenan los nombres de los postulantes que
obtuvieron el mayor y menor puntaje respectivamente. Luego se asignan a los
atributos postMay y postMen, a través de los métodos setPostMay() y
setPostMen(), los valores que se encuentra en pmay y pmen. A continuación,
se declara y se instancia la variable form2 de tipo frmConsulta, es decir, se
crea una variable form2 que tiene los mismos atributos y métodos del
formulario frmConsulta. Posteriormente con los métodos getMayor(),
getMenor(), getPostMay() y getPostMen() se pasan los valores a los
atributos a la variable objeto form2. Luego con el método show() hacemos
que el segundo formulario se muestre.

19. Volvamos al segundo formulario y comenzamos a programar. Definamos


los atributos y la programación en el método constructor.
Los atributos definidos al inicio de la clase frmConsulta nos permitirá recibir los
valores o datos del primer formulario. La programación agregada en el método
constructor define el título del formulario con la expresión “Consulta del Mayor
y Menor Puntaje”, se establece el tamaño del formulario frmConsulta y
finalmente la localización dentro de la pantalla.

Ing. Mirko Manrique Ronceros Página 15


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

20. Programemos en el botón de comando Ver lo siguiente:

Mandamos al cuadro de texto el valor contenido en el atributo postMay siempre


y cuando esté seleccionado el JRadioButton referido al postulante de mayor
puntaje, de lo contario se muetra el contenido del atributo postMen referido al
postulante de menor puntaje.

Ing. Mirko Manrique Ronceros Página 16


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

OBJETOS CONTENEDORES JPANEL Y


JSCROLLPANEL
Swing Containers
Los objetos pertenecientes a Swing Containers, son objetos que permiten agrupar a
otros objetos y facilitan el manejo de ciertos procesos dentro de una aplicación. En el
entorno de NetBeans la paleta de los Swing Containers muestra lo siguiente:

En el presente tema vamos a hacer uso de los objetos Jpanel y JScrollPanel.

Objeto Contenedor JPanel


Este componente lo que nos permite es Agrupar Otros Componentes dentro de él
(algo así como el Frame en Visual.net o el GroupBox de Power Builder).
Para empezar creamos un proyecto, una vez hecho este paso, vamos al panel del lado
derecho donde se encuentran los elementos Swing Containers y seleccionamos el
componente Panel (Jpanel), lo seleccionamos y soltamos en el Formulario.

Ing. Mirko Manrique Ronceros Página 17


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Después de hacer esto soltamos y si hacemos click en otro lado del área del
formulario nótese que pareciera que el Panel no estuviera pero si esta pase el mouse
por donde colocó el Panel y ahí lo ubicará, pero no se alarmen si está.

Bien para no tener estos problemas vamos a


darle un borde a nuestro JPanel, En la ventana de
propiedades como se muestra en la imagen
seleccionamos a la propiedad Border.

Nos mostrará la siguiente


imagen

Ing. Mirko Manrique Ronceros Página 18


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Bien tendremos esto:

Propiedad más usada:


• Border: Se establece el borde y el título si fuese necesario.

Método más usado:


• setEnabled(): Para habilitar o inhabilitar el uso del objeto.

Objeto Contenedor JScrollPanel


Un objeto ScrollPanel permite ubicar dentro de ella uno o varios objetos que
comúnmente son objetos de control. Cuando se sobrepasa el espacio del objeto
JScrollPanel, éste muestra las barras de desplazamiento vertical y/o horizontal.

Por ejemplo, agregamos el JScrollPanel y dentro del mismo agregamos un JPanel para
poder utilizar los componentes libremente; no olvidarse de la propiedad Aboslute
Layout que nos permite colocar en cualquier posición otro componente dentro del
Jpanel. Haremos que cuando cargue el formulario cargue un texto dentro de un Frame

Ing. Mirko Manrique Ronceros Página 19


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Si colocamos el siguiente código en el botón de comando Mostrar:

private void BtnMostrarActionPerformed(java.awt.event.ActionEvent evt) {


lblTexto.setText(“Observa que el código de ejemplo selecciona el tamaño preferido del
contenedor del panel desplazable. Una alternativa sería seleccionar el tamaño
preferido del propio panel desplazable. De cualquier modo, se está limitando el
tamaño del panel desplazable. Esto es necesario porque el tamaño preferido de un
panel desplazable es ser tan grande como pueda”);
}

Para el botón de comando Limpiar colocamos:

private void btnLimpiar ActionPerformed(java.awt.event.ActionEvent evt) {


lblTexto.setText(“”);
}

Al ser ejecutado se debe mostrar el formulario como sigue.

Ing. Mirko Manrique Ronceros Página 20


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Aplicación
Construye una aplicación que permita ingresar el título de una película, seleccionar su
categoría que puede ser Comedia, acción, Dibujos animados o Drama. Además se
debe ingresar la duración en minutos de la película y el nombre del actor principal.
Una vez ingresado los datos se procede a agregar en un objeto JTable generando una
fila de datos y mostrando en un cuadro de texto el número de películas ingresadas.

Solución:
1. Creamos un proyecto denominado Ejercicios.

Luego dar click en el botón de comando Finish (Terminar si el entorno de


NetBeans es en castellano).
2. Estando en el entorno de NetBeans, seleccionamos el paquete ejercicios y
dando click botón derecho del mouse se muestra un menú flotante, donde
seleccionamos Formulario Jframe.

Ing. Mirko Manrique Ronceros Página 21


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

3. A continuación, colocaremos como nombre de formulario frmPeliculas.


Luego dar click en el botón de comando Finish (en caso de que la versión de
NetBeans es en castellano entonces dar click en el botón de comando
Terminar).

4. Se muestra el entorno de desarrollo de NetBeans y no olvidemos de dar click en


el botón derecho del mouse sobre el formulario y establece AbsoluteLayout en
SetLayout.

Ing. Mirko Manrique Ronceros Página 22


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

5. Procedemos a colocar un objeto de control Jlabel con la expresión “PELICULA:”


y al lado derecho un cuadro de texto JTextField.

6. Colocamos un objeto contenedor JPanel por debajo de la expresión


“PELICULA:”.

7. Procedemos a utilizar la
ventana de propiedades del
objeto Jpanel. No vamos a
usar la ficha de propiedades
que se encuentra al lado
derecho del diseño del
formulario, sino que
seleccionamos al objeto
JPanel y luego al dar click
botón derecho del Mouse,
seleccionamos la opción
propiedades.

Ing. Mirko Manrique Ronceros Página 23


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

8. Seleccionamos la propiedad Border y damos click en el botón de comando


correspondiente a ésta propiedad.

9. A continuación, seleccionamos como borde disponible a TitledBorder.

10. En título colocamos “Categorías de Películas”.

Ing. Mirko Manrique Ronceros Página 24


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

11. Ahora procedemos a definir el borde (propiedad que se encuentra encima


de Título).

12. Posteriormente, seleccionamos el tipo de Borde EtchedBorder.

Ing. Mirko Manrique Ronceros Página 25


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

13. Luego de dar click en el botón de comando OK, queda definido el Borde y
el título.

14. Volvemos a dar click en el botón de comando OK y regresamos a la


ventana de propiedades del JPanel.
Cerrar ésta ventana usando el botón de comando Close (Cerrar).

Ing. Mirko Manrique Ronceros Página 26


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

15. El diseño del formulario queda así:

16. Ahora debemos hacer algo muy importante, que es establecer como
AbsoluteLayout al objeto JPanel para que permita colocar los objetos de control
con facilidad.

17. Colocamos cuatro objetos de tipo JRadioButton dentro del objeto Panel,
quedando el diseño del formulario así:

Ing. Mirko Manrique Ronceros Página 27


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

18. No olvidemos de crear un objeto ButtonGroup e indicar para cada objeto


JRadioButton en su propiedad ButtonGroup que pertenecen a ButtonGroup1.

19. Seguimos
agregando los objetos de
control según observamos
en el diseño del
formulario. Esta vez vas a
agregar un objeto
JScrollPanel para colocar
dentro de ella a un objeto
JTable.

Ing. Mirko Manrique Ronceros Página 28


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

20. A continuación colocamos un objeto JTable. Los nombres de los objetos


de control son tal como se aprecia en el siguiente diseño de formulario.

21. Vamos a proceder a programar. Comenzamos con hacer uso del paquete
swing y específicamente a las clases JOptionPane y a la clase JTable.

22. Luego procedemos a crear un modelo para el objeto JTable llamado Tabla a
través de la clase DefaultTableModel. Lo hacemos dentro de la clase
frmNotas. Usar la clase DefaultTableModel es posible gracias al import
javax.swing.table.*;

Ing. Mirko Manrique Ronceros Página 29


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Declaramos y creamos una variable de memoria dtm del tipo


DefaultTableModel.
23. En el método constructor programamos lo siguiente (sólo escribe lo que
se señala la llave de color rojo):

Declaramos y creamos una variable de memoria titulos del tipo cadena y es un


arreglo. Esta variable titulos se inicializa con los valores “Título de la Película”,
”Categoría”, “Duración(min)” y “Actor Principal”, que serán los títulos de las
columnas del objeto JTable. Luego, con el método setColumnIdentifiers() se
define las columnas con sus respectivos títulos en la variable dtm (modelo del
JTable llamado Tabla). Se vincula el modelo, representado en la variable dtm,
al objeto JTable llamado Tabla. Inhabilitamos los objetos indicados en la
programación y damos el enfoque al botón de comando Nuevo.
24. Procedemos a programar en el botón de comando Nuevo (sólo escribe lo
que se señala la llave de color rojo).

Ing. Mirko Manrique Ronceros Página 30


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

25. Procedemos a programar en el botón de comando Agregar (sólo escribe


lo que se señala la llave de color rojo).

Declaramos una variable de memoria llamada datos de tipo String y de tamaño


4. También declaramos una variable entera llamada total. En el primer
elemento del arreglo datos (datos[0]) se asigna el valor ingresado en el cuadro
de texto txtPel (el título de la película). A continuación, se hace uso de
sentencias selectivas IF para evaluar cuál de los objetos JRadioButton ha sido
seleccionado y según el objeto seleccionado se asigna la categoría al segundo
elemento del arreglo datos (datos[1]). En el tercer elemento (datos[2]) y
cuarto elemento (datos[3]) del arreglo datos se asignan la duración y el actor
principal respectivamente. Con el método addRow(), agregamos una fila en el
objeto Table con los datos contenidos en el arreglo datos. Finalmente, en la
variable total se asigna la cantidad de filas de datos que tiene el objeto JTable
haciendo uso del método getRowCount() de la variable objeto dtm. Este
último valor conseguido es visualizado en el cuadro de texto txtTotal a través
del método setText().
26. Luego, procedemos a programar en el botón de comando Eliminar (sólo
escribe lo que se señala la llave de color rojo).

Ing. Mirko Manrique Ronceros Página 31


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Declaramos las variables fila y total de tipo entero. La variable fila se le asigna
el valor de la posición de la fila seleccionada en el objeto Jtable llamado Tabla.
Con la sentencia IF se evalúa a la variable fila si es mayor o igual a cero
procedemos a remover o borrar la fila previamente seleccionada, caso contrario
se muestra un mensaje indicando que se debe seleccionar una fila en la Tabla.
Finalmente, se muestra la cantidad de filas agregadas en el cuadro de texto
txtTotal y haciendo uso del método setRowCount() perteneciente a dtm.
27. Finalmente, programamos en el botón de comando Cerrar.

28. Procedemos a ejecutar el formulario.

Ing. Mirko Manrique Ronceros Página 32


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

OBJETOS CONTENEDORES JTABBEDPANEL Y


JDESKTOPPANEL
Objeto Contenedor JTabbedPanel
Este componente esta compuesto por un conjunto de paneles que puede almacenar
un contenido en un espacio compacto. Sitio donde ocultamos o revelamos el contenido
almacenado en los paneles con pestañas haciendo click en la pestaña del panel que se
desea acceder. Por ejemplo, para empezar creamos un proyecto, una vez hecho este
paso, vamos al panel del lado derecho donde se encuentran los elementos Swing
Containers y seleccionamos el componente Panel (JPanel) Lo seleccionamos y
soltamos en el Formulario.

Para usar el JTabbedPanel debemos de insertarle un Panel dentro de el mismo ya que


si no lo hacemos, cualquier controles que agreguemos se maximizará apoderándose
de Tab1 y cada control que agreguemos será un nuevo Tab.
Procedemos entonces a agregarle el panel a nuestro JTabbed para poder utilizarlo
correctamente.

Ing. Mirko Manrique Ronceros Página 33


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

No

nos olvidemos de ponerle al JPanel su propiedad Aboslute Layout para poder utilizar
los controles libremente dentro de él.

Propiedad más usada:


• Border: Se establece el borde y el título si fuese necesario.
Método más usado:
• setEnabled(): Para habilitar o inhabilitar el uso del objeto.

Objeto Contenedor JDesktopPanel


Este objeto es utilizado más para mejorar el diseño de los formularios. Es un interfaz
más agradable para diseñar las aplicaciones.

Ing. Mirko Manrique Ronceros Página 34


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Como observamos los objetos de control se dibujan encima del objeto JDesktopPanel,
que por defecto es de un fondo de color azul.
Propiedad más usada:
• Background: Para definir el color del objeto JDesktopPanel.

Aplicación
Construye una aplicación que permita ingresar los apellidos, los nombres, el teléfono,
seleccionar el grado de instrucción y el sexo de un alumno. Estos datos se manejarán
en una pestaña del objeto JTabbedPanel. En una segunda pestaña se debe seleccionar
el curso que el alumno quiere matricularse y la forma de pago. A través de un botón
de comando MATRICULAR se llevará los datos a un objeto JTable que se encuentra en
una tercera pestaña. En la pestaña donde se encuentra el objeto JTable se mostrará la
suma de los precios de todos los cursos que el alumno quiere matricularse. Habrá la
posibilidad de quitar o eliminar un curso que el alumno desista llevarlo.

Solución:
1. Creamos un proyecto
denominado
AplicaContenedores. Luego
estando en el entorno de
NetBeans, seleccionamos el
paquete aplicacontenedores y
dando click botón derecho del
mouse, se muestra un menú
flotante, donde seleccionamos
Formulario JFrame.

Ing. Mirko Manrique Ronceros Página 35


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

2. A continuación, colocaremos como nombre de formulario frmMatricula.


Luego dar click en el botón de comando Finish (en caso de que la versión de
NetBeans es en castellano entonces dar click en el botón de comando
Terminar).

3. Se muestra el entorno de desarrollo de NetBeans y no olvidemos de dar click en


el botón derecho del mouse sobre el formulario y establece AbsoluteLayout en
SetLayout.

Ing. Mirko Manrique Ronceros Página 36


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

4. Procedemos a colocar un objeto de control JLabel con la expresión “MATRICULA


DE CURSOS DE EXTENSION”. Debajo de ésta expresión colocaremos un objeto
JTabbedPanel. Una vez seleccionado el objeto JTabbedPanel de la paleta y lo
ubicamos en el formulario, antes de dar click para que quede dibujado, tiene la
siguiente apariencia:

Al dar click se reduce el tamaño del objeto JTabbedPanel.

Debemos agrandar dicho objeto hasta que quede así:

5. Estando seleccionado el objeto JTabbedPanel, dar click botón derecho del


mouse, seleccionamos la opción Agregar desde Paleta, luego Swing y
elegimos Jpanel.

Ing. Mirko Manrique Ronceros Página 37


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Una vez seleccionado Jpanel se creará una pestaña Tab1 en el objeto


JTabbedPanel.

6. Procedemos a colocar AbsoluteLayout en la opción Set Layout cuando


usemos el botón derecho del mouse sobre el Tab1.

Ing. Mirko Manrique Ronceros Página 38


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

7. A continuación, colocaremos un objeto JdesktopPanel encima del Tab1. Una vez


seleccionado el objeto JDesktopPanel de la paleta y lo ubicamos dentro del
Tab1, antes de dar click para que quede dibujado, tiene la siguiente apariencia:

Al dar click se reduce el tamaño del objeto JDesktopPanel.

Ing. Mirko Manrique Ronceros Página 39


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Debemos agrandar dicho objeto hasta que quede así:

8. Comenzamos a colocar
objetos de control de tipo
JLabel, JtextField y
jComboBox. El objeto
JComboBox contendrá como
grado de instrucción a
“<Seleccionar”,”Secundaria” y
“Superior.” También
colocaremos un objeto JPanel
para el sexo del alumno
donde se establecerá el título
y el borde.

Ing. Mirko Manrique Ronceros Página 40


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Este objeto JPanel (Jpanel2) referido a sexo se debe establecer en la propiedad


background, el color que debe ser parecido al color del JDesktopPanel.

9. Una vez establecido el color del JPanel2, procedemos a establecer para éste
objeto JPanel2 el AbsoluteLayout en Set Layout.

Ing. Mirko Manrique Ronceros Página 41


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

10. El objeto JPanel2 esta referido al dato sexo, en cambio el objeto JPanel1 está
referido al Tab1. Como debemos colocar un título a la pestaña Tab1 demos
hacer uso de la vista de propiedades del JPanel1. Puedes seleccionar del panel
Navegador (que se encuentra a la izquierda del diseño del formulario) y al dar
click botón derecho del mouse se muestra un menú flotante y seleccionas
propiedades. Vamos a colocar como título de la pestaña “Datos del alumno”.

11. Va
mos a proceder a crear otro Tab. Debemos nuevamente seleccionar el objeto
JTabbedPanel, dar click botón derecho del mouse, seleccionamos la opción
Agregar desde Paleta, luego Swing y elegimos Jpanel.
Una vez seleccionado Jpanel se creará una pestaña Tab2 en el objeto
JTabbedPanel.

Ing. Mirko Manrique Ronceros Página 42


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

12. Procedemos a colocar AbsoluteLayout en la opción Set Layout cuando


usemos el botón derecho del mouse sobre el Tab2.

Ing. Mirko Manrique Ronceros Página 43


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

13. Colocamos un objeto JDesktopPanel en el Tab2 tal como lo hicimos en


anteriormente. Luego sobre el objeto JDesktopPanel al dar click botón derecho
del mouse, en el menú flotante seleccionamos propiedades.

Ing. Mirko Manrique Ronceros Página 44


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Se establece otro color al objeto JDesktopPanel.

14. Una vez establecido el color para el objeto JDesktopPanel, procedemos a


colocar los objetos de control para el Tab2. Se utilizará un ComboBox para los
cursos que contendrá los nombres siguientes:

15. Utilizaremos un objeto JPanel para la forma de pago (al contado o al pago de
dos cutotas), que una vez dibujado y establecido el borde y el título, debemos
indicar que su Set Layout es AbsoluteLayout.

Ing. Mirko Manrique Ronceros Página 45


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

16. Seleccionamos al objeto JPanel3


que pertenece al Tab2 y
definimos el título de la pestaña
tal como se hizo con Tab. Esta
vez el título será “Curso a
Matricularse”. Creamos un Tab3
de la forma cómo se hizo,
también colocamos un objeto
JDesktopPanel, a éste último le
cambiamos el color en la
propiedad background y
posteriormente colocamos los
objetos de control. Se usará un
objeto JTable para visualizar los
cursos matriculados del alumno.
Vamos a colocar los nombres a
cada uno de los objetos de
control para cada Tab del objeto
JTabbedPanel.

Ing. Mirko Manrique Ronceros Página 46


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

17. Vamos a proceder a programar. Comenzaremos con hacer uso del


paquete swing y específicamente a las clases JOptionPane y JTable.

Ing. Mirko Manrique Ronceros Página 47


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

18. Luego procedemos a crear un modelo para el objeto JTable llamado Tabla a
través de la clase DefaultTableModel. Lo hacemos dentro de la clase
frmNotas. Usar la clase DefaultTableModel es posible gracias al import
javax.swing.table.*;

Declaramos y creamos una variable de memoria dtm del tipo


DefaultTableModel.
19. En el método constructor programamos lo siguiente (sólo escribe lo que
señala la llave de color rojo):

Declaramos y creamos una variable de memoria titulos del tipo cadena y es un


arreglo. Esta variable titulos se inicializa con los valores “Curso Matriculado”,
“Duración”, “Costo”, “Forma de Pago” y “Precio”, que serán los títulos de las
columnas del objeto JTable. Luego, con el método setColumnIdentifiers() se
define las columnas con sus respectivos títulos en la variable dtm (modelo del
JTable llamado Tabla). Se vincula el modelo, representado en la variable dtm,
al objeto JTable llamado Tabla.
20. Procedemos a programar en el botón de comando Nuevo (sólo escribe lo
que se señala la llave de color rojo).

Ing. Mirko Manrique Ronceros Página 48


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Declaramos como variables de memoria i y total de tipo entero. Limpiamos los


cuadros de textos y para los objetos JComboBox damos como ítem
predeterminado a <Seleccionar> (índice activo igual a cero). En la variable
total se cuenta el número de filas del objeto JTable a través de la variable dtm.
Con la sentencia If evaluamos si es mayor a cero y procedemos con la
sentencia for a eliminar fila por fila con el método remove().
21. Luego, procedemos a programar en el botón de comando MATRICULAR
que se encuentra en el Tab2 (Curso a Matricularse).
Declaramos una variable de memoria llamada datos de tipo String y de tamaño
5. También declaramos las variables total, costo e i como enteros y precio
como numérico real. La variable costo se almacena el contenido del cuadro de
texto txtCosto. En el primer elemento del arreglo datos (datos[0]) se asigna
el valor seleccionado del objeto cboCurso. En el segundo elemento del arreglo
datos (datos[1]) se almacena el contenido del cuadro de texto txtDura y en el
tercer elemento (datos[2]) el contenido del cuadro de texto txtCosto. En el
cuarto elemento se almacena el valor “Contado” si la forma de pago es al
contado y en el quinto elemento el costo descontado en 5%. Si la forma de

Ing. Mirko Manrique Ronceros Página 49


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

pago es a pagar a cuotas entonces el cuarto elemento se asigna el valor “Pago


de 2 cuotas” y al quinto elemento se asigna el resultado del costo incrementado
en un 10%. Con el método addRow(), agregamos una fila en el objeto JTable
con los datos contenidos en el arreglo datos. En la variable total se asigna la
cantidad de filas de datos que tiene el objeto JTable haciendo uso del método
getRowCount() de la variable objeto dtm. Con la sentencia for buscamos la
suma de los precios en la variable precio. Finalmente asignamos el valor
calculado en precio al cuadro de texto txtPTotal e inicializamos los objetos de
control para la posibilidad de seleccionar otro curso.

Ing. Mirko Manrique Ronceros Página 50


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

22. También debemos programar en el objeto cboCurso en el evento


ActionPerformed (sólo escribe lo que se señala la llave de color rojo).
Pretendemos al momento de seleccionar un curso se muestre la duración del
curso y el costo en los cuadros de textos txtDura y txtCosto respectivamente.

23. Procedemos a programar en el botón de comando QUITAR que se encuentra en


el Tab3 (sólo escribe lo que se señala la llave de color rojo).

Declaramos las variables i, fila y total de tipo entero. La variable fila se le


asigna el valor de la posición de la fila seleccionada en el objeto Jtable llamado
Tabla. Con la sentencia IF se evalúa a la variable fila si es mayor o igual a cero

Ing. Mirko Manrique Ronceros Página 51


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

procedemos a remover o borrar la fila previamente seleccionada y calculamos la


suma de los precios de todos los cursos mostrándolo en el cuadro de texto
txtPTotal, caso contrario se muestra un mensaje indicando que se debe
seleccionar una fila en la Tabla.
24. Finalmente, programamos en el botón de comando Cerrar.

25. Procedemos a ejecutar el formulario.

Ing. Mirko Manrique Ronceros Página 52


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

OBJETOS MENUS JMENUBAR Y JMENUITEM


Swing Menus
Aquí podemos ver el árbol de herencia de las clases relacionadas con los menús:

Como se ve en la figura, los ítems de menús (incluidos los propios menús) son simples
botones. Podríamos preguntarnos como un menú, si es sólo un botón, muestra sus
ítems. La respuesta es que cuando se activa un menú, automáticamente trae un menú
desplegable que muestra sus ítems.

Crear y congifurar Barras de Menú


Métodos:
• JMenuBar(): Crea una barra de Menú.
• setJMenuBar(): Selecciona la barra de menú de un Frame interno.
• getJMenuBar(): Obtiene la barra de menú de un Frame interno
Crear y rellenar Menús
Métodos:
• Jmenu(): Crea un Menú a partir de una opción de la barra.
• add(JMenuItem): Crea un ítem de menú al final del menú.

Ing. Mirko Manrique Ronceros Página 53


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

• insert(): Inserta un ítem de menú o un separador de menú, en la posición


especificada.
• Remove():Elimina el ítem o ítems especificados del menú. Si el argumento es
un esntero, especifica la posición del ítem a eliminar.

Adición del Menú


Ubicar el cursor en la etiqueta [JFrame], hacer clic en el botón derecho del ratón. Se
desplegará el siguiente menú flotante:

Seleccionamos Add Form Palette (en la versión en castellano debe decir Agregar desde
paleta), luego la opción Swing y finalmente JMenuBar. La interfaz que ese está
desarrollando adopta la siguiente apariencia:

Ing. Mirko Manrique Ronceros Página 54


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

En el panel de Inspector (Navegador) debe quedar así:

Cambiamos el nombre de de jManuBar1 por jMenuBar_principal y jMenu1 por


jMenu_archivos. Para esto ubicamos el cursor en la etiqueta respectiva, se hace
click botón derecho del mouse y en el menú flotante desplegado seleccionamos
Change Variable Name. El aspecto del panel Inspector (Navegador) debe ser
ahora el siguiente:

Ing. Mirko Manrique Ronceros Página 55


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Cambiemos ahora el nombre que se despliega en la barra del menú (Menu).

Ubicamos el cursor en la etiqueta el árbol de Inspector sobre jMenu_archivos. Hacer


click botón derecho del mouse; en el menú flotante desplegado, seleccionamos
Properties (en castellano propiedades). Cambiamos en el cuadro desplegado en la
propiedad text, Menu por Archivos. La interfaz gráfica adopta la siguiente forma:

Procedemos a Agregar Ítems al menú Archivos. Ubicamos el cursor en el árbol de


Inpector sobre jMenu_archivos. Hacer click botón derecho del mouse. En el menú
flotante desplegado seleccionemos Add > JMenuItem.

Ing. Mirko Manrique Ronceros Página 56


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

El panel inspector (navegador) toma la siguiente forma:

Ing. Mirko Manrique Ronceros Página 57


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Cambiemos el nombre de jMenuItem1 por jMenuItem_abrir.

Si procedemos a compilar y ejecutar la aplicación, vemos que al dar click sobre el


menú Archivos, se observará lo siguiente:

Cambiemos la cadena “Item” desplegada


por la cadena “Abrir”. Ubiquemos el cursor
en el árbol de Inspector sobre
JMenuItem_abrir; en el menú flotante
desplegado seleccionemos Properties
(propiedades) y cambiemos en el nuevo
cuadro desplegado en la propiedad text,
Item por Abrir. Al compilar y ejecutar la
aplicación y dando click sobre el menú
Archivos, se observará lo siguiente:

Ing. Mirko Manrique Ronceros Página 58


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Repetir el procedimiento antes explicado para agregar los ítems: “Guardar” e


“Imprimir”. Las respectivas variables en el árbol o panel de Inspector (Navegador) lo
cambiamos el nombre por: jMenuItem_guardar y jMenuItem_imprimir. Nuevamente
compilamos y ejecutamos la aplicación. El formulario se muestra de la siguiente
manera:

El panel lnspector debe tener ahora el siguiente aspecto:

Vamos a adicionar más menús a la barra de menús. En el árbol de Inspector ubicamos


el cursor sobre jMenuBar y hacer click botón derecho del mouse. En el menú flotante
desplegado escoger Add JMenu. El aspecto de Inspector es el siguiente:

Ing. Mirko Manrique Ronceros Página 59


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

El aspecto del diseño del formulario queda así:

Ahora procedamos con el diseño del menú dentro del diseño del formulario. Al
momento de que lo ejecutemos debe quedar el diseño del formulario de la siguiente
forma:

Ing. Mirko Manrique Ronceros Página 60


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Y que el panel Inspector tenga el siguiente aspecto:

Ing. Mirko Manrique Ronceros Página 61


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

OBJETOS MENUS JRADIOBUTTONMENUITEM,


JSEPARATOR y JMENU

Menus desplegables
Una barra de menú contiene uno o más menús, y tiene una posición dependiente de la
plataforma -- normalmente debajo de la parte superior de la ventana. Un menú
desplegable es un menú que es invisible hasta que el usuario hace una acción del
ratón específica de la plataforma, como pulsar el botón derecho del ratón sobre un
componente. Entonces el menú desplegable aparece bajo el cursor.

Crear y congifurar Barras de Menú


Métodos:
• JMenuBar(): Crea una barra de Menú.
• setJMenuBar(): Selecciona la barra de menú de un Frame interno.
• getJMenuBar(): Obtiene la barra de menú de un Frame interno
Crear y rellenar Menús
Métodos:
• Jmenu(): Crea un Menú a partir de una opción de la barra.
• add(JMenuItem): Crea un ítem de menú al final del menú.
• insert(): Inserta un ítem de menú o un separador de menú, en la posición
especificada.
• Remove():Elimina el ítem o ítems especificados del menú. Si el argumento es
un esntero, especifica la posición del ítem a eliminar.
• AddSeparator(): Añade un separador al final del menú desplegable.
Implementar Items de Menú
Métodos:
• JMenuItem(): Crea un ítem en un menú normal.
• JCheckBoxMenuItem: Crea un ítem de menú que se parece y actúa como un
checkbox.
• JRadioButtonMenuItem: Crea un ítem de menú que se parece y actúa como un
radio buttom. Se puede hacer uso de un ícono.

Ing. Mirko Manrique Ronceros Página 62


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

• setEnabled(): Si el argumento es true, activa el ítem de menú, si es false lo


desactiva.
Uso de la clase RadioButton
Los Botones de Radio son grupos de botones en los que, por convención, sólo uno de
ellos puede estar seleccionado. Swing soporta botones de radio con las clases
JRadioButton y ButtonGroup. Para poner un botón de radio en un menú, se utiliza la
clase JRadioButtonMenuItem. Los botones de radio tienen un aspecto similar a los
checkboxes, pero, por convención, los checkboxes no tienen límites sobre cuantos
ítems pueden estar seleccionados a la vez. Como JRadioButton desciende de
AbstractButton, los botones de radio Swing tienen todas las caracterísitcas de los
botones normales.
Aquí podemos ver una imagen de una aplicación que utiliza cinco botones de radio
para elegir qué tipo de mascota mostrar:

Uso de la clase CheckBox


La versión Swing soporta botones checkbox con la clase JCheckBox, Swing también
soporta checkboxes en menús, utilizando la clase JCheckBoxMenuItem. Como
JCheckBox y JCheckBoxMenuItem descienden de AbstractButton, los checkboxes
de Swing tienen todas las características de un botón normal

Adicionar items dentro de los ítems


En la sesión anterior (Tema 10), estuvimos desarrollando el diseño de un menú que
quedó su panel de inspector de la siguiente manera:

Ing. Mirko Manrique Ronceros Página 63


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Ahora vamos a construir un tercer menú algo más complejo. La aplicación una vez
terminado deberá tener las siguientes formas:

Ing. Mirko Manrique Ronceros Página 64


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Y el panel Inspector debe adoptar la siguiente forma:

Ing. Mirko Manrique Ronceros Página 65


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Para lograr esto es necesario adicionar dentro de los JMenu más JMenus. Sólo los
últimos para adicionar en cada rama del árbol del panel Inspector serán los
JMenuItem. Repetir el paso Anterior para que la aplicación una vez ejecutada adopte
la siguiente forma:

Y el panel Inspector se encuentre en el siguiente estado:

Ing. Mirko Manrique Ronceros Página 66


Universidad Nacional del Santa
Facultad de Ingeniería Programación Visual con Java
E.A.P. Sistemas e Informática

Ing. Mirko Manrique Ronceros Página 67

También podría gustarte