You are on page 1of 99

INTRODUCCIN A JAVA - NETBEANS

AspectosGenerales
En esta parte de la Unidad Didctica Herramientas de desarrollo de Software, se har una
presentacin y estudio de las interfaces visuales a travs del entorno de desarrollo denominado
NetBeans, es decir, utilizaremos el lenguaje de programacin Visual Java. La asignatura se
encuentra dividida en dos unidades: la primera es Manipulacin de controles, la segunda es
Diseo de formularios y Mens.
En la primera parte se estudiar a los objetos de control bsicos como son JLabel, JTextField,
JButton, JRadioButton, JCheckBox, JList, JComboBox y Jtable; en la segunda parte se tendr en
cuenta el diseo de aplicaciones a partir de casos, lo cual implica el uso de los objetos de control
bsicos estudiados en la primera parte como tambin la construccin o diseo de mens; y en la
tercera se abarcar la construccin o diseo de sistemas de aplicaciones haciendo uso de las
sentencias selectivas, repetitivas y el uso de arreglos como tambin se ver el uso de interfaces
multimedia y paquetes.
A continuacin iniciamos el desarrollo de la asignatura y haciendo una introduccin a la
programacin visual.
Qu esProgramacin Visual?
La programacin visual brinda los conocimientos necesarios para disear y desarrollar aplicaciones
con un entorno visual amigable y fciles de utilizar por el usuario. Los lenguajes de
programacin visual, como Visual Java, hacen sencilla la tarea de los programadores porque antes
constitua una gran demora tiempo en el diseo de ventanas o formularios.
ProgramacinorientadaaObjetos
En el caso del lenguaje de programacin, Java aplica la programacin orientada a objetos (POO). La
POO define a los programas en trminos de clases de objetos, objetos que son entidades que
combinan estado (datos), comportamiento (procedimientos o mtodos) e identidad (propiedad o
atributo del objeto) que lo diferencia de los dems. La POO expresa un programa como un
conjunto de objetos, que colaboran entre ellos para realizar tareas.
Podramos decir que que las caractersticas de los objetos son:

Los objetos se pueden agrupar para formar las clases.

El estado de los objetos est determinado por los datos.

Pueden heredar propiedades o atributos de otros objetos.

Usando Mensajes un objeto se puede comunicar con otro objeto.

Los mtodos definen el comportamiento de los objetos.

BibliotecasdeClasesenJava
Sabemos que Java es un lenguaje de programacin con un entorno de ejecucin de aplicaciones
como tambin entorno de ejecucin de despliegue de aplicaciones. Es utilizado para desarrollar
applets como aplicaciones.
Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

Java est compuesta de bibliotecas de clases (package) siendo las ms importantes:

Package Lang: compuesta por clases con funcionalidades bsicas, arrays, cadenas de
caracteres, entrada/salidad, excepciones, etc. Este paquete debes haberlo utilizado en el
curso de Fundamentos de Programacin.
Package Util: compuesta por clases para utilizadas como nmeros aleatorios, vectores,
propiedades del sistema, etc.
Package net: compuesta por clases, es usada para la conectividad y trabajo con redes, URL,
etc.
Package Applet: compuesta por clases, es usada para el desarrollo de
aplicaciones ejecutables en navegadores.
Package Awt y Swing: compuesta por clases para el desarrollo de interfaces grficas de
usuario. El paquete swing es el paquete por excelencia para el desarrollo de los temas
del presente curso.

Observa la siguiente figura:

Cualquier programa hecho en Java lleva a definir un archivo de extensin .java. El programa debe
pasar por un proceso de compilacin que consiste en convertir tu programa fuente (el archivo
de extensin .java) en un archivo de extensin .class y conjuntamente con la biblioteca de clases se
logra interpretar lo programado, es as cuando ya se puede ejecutar el programa y ver los resultados
en la pantalla del computador. Para este curso, en el que veremos programacin visual y por lo tanto
el uso de formularios, se crear un archivo adicional con extensin.frm que guardar la
estructura o diseo del formulario.
Veamos a continuacin el entorno de desarrollo NetBeans, el cual ya conoces, pero del que vale la
pena reforzar algunas afirmaciones necesarias para el curso.
NetBeans IDE en la programacin visual
El NetBeans es un entorno de desarrollo integrado que permite crear aplicaciones de escritorio,
aplicaciones web y aplicaciones mviles utilizando las ltimas tecnologas para los desarrolladores
de software de Java. El IDE de NetBeans es un producto gratuito y sin restricciones de uso pudiendo
escribir, compilar, depurar e implementar programas en Java. NetBeans es un proyecto open source
de desarrollo escrito en Java. La plataforma NetBeans da soporte para escritura de servlets, ayuda
Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

on-line y ayudas con el cdigo.


Usaremos la versin 7.0 de NetBeans para la construccin y diseo de las aplicaciones. Una vez que
ingresas al entorno de desarrollo de NetBeans se observa:

Para dar inicio a una aplicacin de Java bajo el entorno de Netbeans se debe definir un proyecto,
para ello, seleccionas la opcin del men denominada File. Se muestra inmediatamente un men
flotante cuya primera opcin indica New Proyect, est opcin la seleccionas.

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

Al momento de seleccionar New Proyect se visualiza la ventana siguiente:

Dado que nuestras aplicaciones van ser desarrolladas en entorno visual en Categories seleccionas la
carpeta Java y en Proyects seleccionas Java Application. Luego hacer click en el botn de comando
Next que mostrar la siguiente ventana:

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

Es conveniente que uno mismo cree su carpeta de destino de los archivos que se generan
para la construccin de una aplicacin. Supongamos que la carpetas que necesitamos crear se llama
Ejercicios y la creamos en la unidad E, para ello es necesario dar click en el botn de comando
Browse.

Una vez indicada la nueva carpeta Ejercicios, procede a dar click en el botn de comando
Abrir quedando la ventana New Java Application de la siguiente forma:

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

Se observa que en Proyect Location se muestra la carpeta destino del proyecto. Vamos a suponer
que se quiere construir un programa que calcule el promedio de dos notas, entonces la ventana
debera quedar de la siguiente forma:

Al dar click en Finish se mostrar el entorno de desarrollo de NetBeans listo para dar inicio a
la construccin de la aplicacin.

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

Cuando se pretenda construir una aplicacin de entorno visual tendramos que usar plantillas
que el mismo NetBeans IDE te ofrece. Ahora, seleccionemos el paquete ejercicios y luego elijamos
la opcin New y a continuacin seleccionemos JFrameForm

Una vez seleccionada la opcin JframeForm se muestra la ventana New Jframe Form
para definir el nombre de clase.

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

Como nombre de clase le pondremos frmPromedio2Notas esto generar un archivo de extensin


.java dentro de la ruta: E:\Ejercicios\Promedio2Notas\src\ejercicios\frmPromedio2Notas.java
y como veremos todo se encuentra dentro de la carpeta Ejercicios creada inicialmente en la unidad
E

Al dar click en el botn de comando Finish se mostrar el entorno de desarrollo de NetBeans listo
para dar inicio al diseo de un formulario y por lo tanto dar comienzo a una aplicacin en un
entorno visual.

Ing. Oscar Ascn Valdivia

USODELOSOBJETOS JLABEL,JTEXTFIELD Y JBUTTON

ObjetodecontrolJLabel
Un objeto de control Jlabel permite dibujar en el formulario una etiqueta, entendindose como
etiqueta una expresin esttica que se quiere colocar. Tambin es usado para mostrar los resultados
de un proceso.
Propiedades ms usadas:

Text: Contiene el valor que se visualizar en el formulario.

Font: Permite establecer el tipo de letra de la expresin a mostrar en el formulario.

Border: Para establecer el tipo de borde de la etiqueta.

Enabled: Para habilitar o inhabilitar el uso del objeto de control.

ObjetodecontrolJTextField
Un objeto de control JTextField permite dibujar en el formulario un cuadro de texto, es decir,
una caja que permite la introduccin de un dato o valor. Este objeto es utilizado para el ingreso de
datos.
Propiedades ms usadas:

Text: Contiene el valor o dato introducido en el cuadro de texto.

Font: Permite establecer el tipo de letra del texto en la caja.

Border: Para establecer el tipo de borde del cuadro de texto.

Enabled: Para habilitar o inhabilitar el uso del objeto de control.

Mtodos ms usados:

getText(): Permite obtener el texto introducido en el cuadro de texto.

setText(): Permite colocar un texto en el objeto JTextField.

requestFocus(): permite asignar el cursor al objeto de control

Ing. Oscar Ascn Valdivia

ObjetodecontrolJButton
Un objeto de control JButton permite dibujar en el formulario un objeto que contiene un proceso a
ejecutar. Se utiliza comnmente para llevar a cabo procesos especficos segn la naturaleza de la
aplicacin.
Propiedades ms usadas:

Text: Contiene el valor o dato introducido en el cuadro de texto.

Font: Permite establecer el tipo de letra del texto en la caja.

Enabled: Para habilitar o inhabilitar el uso del objeto de control.

Evento ms usado:

ActionPerformed: Este evento se lleva a cabo cuando el usuario da click sobre el objeto
de control JButton.

Una aplicacinusando los objetos de control


Ahora procedamos a desarrollar la misma aplicacin usando como interfase un formulario y los
objetos de control antes mencionado.
Solucin:

Seleccionamos el paquete ejercicios y damos click botn derecho del mouse y eligimos
la opcin New y posteriormente JframeForm.

Ing. Oscar Ascn Valdivia

10

Se muestra la ventana New JFrame Form y colocamos en Class Name el nombre del
formulario: frmAreaTriangulo.

En esta ventana se observa que la clase denominada frmAreaTriangulo generar un archivo


de extensin .java denominado frmAreaTriangulo que se almacenar dentro de la carpeta
ejercicios y pertenecer al paquete ejercicios.

Al momento de dar click en el botn de comando Finish se visualizar el entorno de


desarrollo NetBeans y al lado derecho se muestra la paleta de los objetos de control (Swing
Controls).

Ing. Oscar Ascn Valdivia

11

Sobre el diseo del formulario damos click botn derecho y seleccionamos Set
Layout y posteriormente AbsoluteLayout.

Es necesario usar AbsoluteLayout para que permita dibujar los objetos de control en el
lugar donde uno quiere en el formulario.

Ahora procedamos a colocar un objeto Jlabel seleccionando de la paleta Swing


Controls Label y lo arrastramos hacia el diseo del formulario.

Ing. Oscar Ascn Valdivia

12

Continuamos el diseo del formulario, quedando ste de la siguiente manera:

Ahora procedamos a usar a cambiar los valores de las propiedades de los objetos de control
en la ventana de propiedades:
Objeto de Control

Propiedad

Valor de la Propiedad

JLabel1

Text

BASE:

JLabel2

Text

ALTURA:

JLabel3

Text

El rea del Tringulo es:

JTextField1

Text

(Vaco o limpiar)

JTextField2

Text

(Vaco o limpiar)

JTextField3

Text

(Vaco o limpiar)

JButton1

Text

CALCULAR

JButton2

Text

LIMPIAR

JButton3

Text

CERRAR

Luego de aplicar los cambios en los valores de propiedades el diseo del formulario debe
quedar de la siguiente manera:

Ing. Oscar Ascn Valdivia

13

Es necesario darle un nombre propio a los objetos de control y sobretodo a aquellos


que intervienen en la lgica de la programacin. Seleccionamos el objeto de control
JTextField1 y damos click con el botn derecho del mouse y se visualizar un men
flotante y seleccionamos Change Variable Name.

Ing. Oscar Ascn Valdivia

14

Colocamos como nombre al objeto JtextField1: txtBase

Continuamos con los objetos de control siguientes:


Objeto de Control

Nombre

JTextField2

txtAltura

JTextField3

txtArea

JButton1

btnCalcular

JButton2

btnLimpiar

JButton3

btnCerrar

Ahora procedamos a programar en los botones de comando.


En el botn CALCULAR (btnCalcular) al darle doble click y escribir el siguiente
cdigo: (lo escrito en azul)
private void btnCalcularActionPerformed(java.awt.event.ActionEvent evt)
{
int base, altura; double area;
base=Integer.parseInt(txtBase.getText());
altura=Integer.parseInt(txtAltura.getText());
area=base*altura/2;
txtArea.setText(String.valueOf(area));
}

Una vez declaradas las variables de memoria, a la variable base se le asigna el valor
introducido en el cuadro de texto txtBase. El mtodo getText() permite obtener el dato
introducido y con el mtodo parseInt de la clase Integer es convertido a numrico entero. Se
hace lo mismo para la variable altura. Para mostrar el clculo de rea se utiliza el mtodo
setText del cuadro de texto txtArea que permite visualizar el contenido de la variable area.
A la variable se le aplica el mtodo valueOf de la clase String para convertir el dato rea en
cadena de caracteres.
Ing. Oscar Ascn Valdivia

15

En el botn LIMPIAR (btnLimpiar) luego de darle doble click escribimos el siguiente


cdigo: (lo escrito en azul)
private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt)
{
txtBase.setText("");
txtAltura.setText("");
txtArea.setText("");
txtBase.requestFocus();
}

Se limpian los cuadros de textos a travs del mtodo setText() y con el mtodo
requestFocus() se pasa el cursor al objeto de control txtArea.

En el botn CERRAR (btnCerrar) luego de darle doble click, escribimos el siguiente cdigo:
(lo escrito en azul)
private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt)
{
dispose();
}

El mtodo dispose() permite descargar el formulario y terminar la ejecucin de la


aplicacin.

Procedemos a ejecutar la aplicacin seleccionado frmAreaTriangulo y al dar clic botn


derecho eligimos Run File.

Ing. Oscar Ascn Valdivia

16

Se muestra el formulario diseado en etapa de ejecucin.

Podemos observar que el formulario sale con los objetos de control cercano a los bordes del
formulario y el mismo formulario se visualiza pegado en la parte superior izquierda de la
pantalla del computador. Vamos a proceder a corregir estos defectos agregando dos
lneas de cdigo en el mtodo constructor de la clase frmAreaTriangulo. (escribe lo que est
en azul)
public class frmAreaTriangulo extends javax.swing.JFrame
{
/** Creates new form frmAreaTriangulo */
public frmAreaTriangulo()
{
initComponents();
setSize(400,250);
setLocation(250,250);
}

El mtodo setSize() permite establecer el tamao del formulario y el mtodo setLocation()


permite ubicar el formulario dentro de la pantalla. Los mtodos antes mencionados
pertenecen al formulario frmAreaTriabgulo. Otros mtodos del formulario se vern ms
adelante.
Procedemos nuevamente a ejecutar el formulario frmAreaTriangulo y se mostrar de la
siguiente manera:

Ing. Oscar Ascn Valdivia

17

PROGRAMA DEL PROMEDIO DE NOTAS


El diseo del formulario debe quedar como la siguiente figura:

Le ponemos nombres a las objetos de control y sobre todo a aquello que intervienen en la lgica de la
programacin.

Ing. Oscar Ascn Valdivia

18

Continuamos con los objetos de control siguientes:


Objeto de control

Nombre

JTextField2

txtNotaFinal

JTextField3

txtNotaPromocional

JButton1

btnCalcular

JButton2

btnLimpiar

JButton3

bntCerrar

Ahoraprocedamosaprogramarenlosbotonesdecomando(Ventanadeedicindecdigo)
En el botn CALCULAR (btnCalcular) al darle doble click y escribir el siguiente cdigo: (lo escrito en azul)
private void btnCalcularActionPerformed(java.awt.event.ActionEvent evt)
{
int NotaParcial, NotaFinal;
double NotaPromocional;
NotaParcial=Integer.parseInt(txtNotaParcial.getText());
NotaFinal=Integer.parseInt(txtNotaFinal.getText());
NotaPromocional=(NotaParcial + NotaFinal)/2;
txtNotaPromocional.setText(String.valueOf(NotaPromocional));
}
Una vez declaradas las variables de memoria, a la variable NotaParcial se le asigna el valor introducido en el
cuadro de texto txtNotaParcial. El mtodo getText() permite obtener el dato introducido y con el mtodo
parseInt de la clase Integer es convertido a numrico entero. Se hace lo mismo para la variable NotaFinal.
Para mostrar el valor del clculo de la nota promedio se utiliza el mtodo setText del cuadro de texto
txtNotaPromocional que permite visualizar el contenido de la variable NotaPromocionail. A la variable se
le aplica el mtodo valueOf de la clase String para convertir el dato rea en cadena de caracteres.
En el botn LIMPIAR (btnLimpiar) luego de darle doble click escribimos el siguiente cdigo: (lo escrito
en azul).
private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt)
{
txtNotaParcial.setText("");
txtNotaFinal.setText("");
txtNotaPromocional.setText("");
txtNotaParcial.requestFocus();
}
Se limpian los cuadros de textos a travs del mtodo setText() y con el mtodo requestFocus() se pasa el
cursor al objeto de control txtNotaParcial.
En el botn CERRAR (btnCerrar) luego de darle doble click, escribimos el siguiente cdigo: (lo escrito
en azul)
private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt)
{
dispose();
}
El mtodo dispose() permite descargar el formulario y terminar la ejecucin de la aplicacin.
Ing. Oscar Ascn Valdivia

19

TAREA N 1
1. Se desea construir una aplicacin que permita ingresar una cantidad de camisas a comprar a
una distribuidora indicando el costo unitario y la tasa de descuento, para luego mostrar el costo
total, el igv(18% del costo total) y el mosto a pagar (costo total ms el igv). El diseo del
formulario es el siguiente:

2. Se desea construir una aplicacin que permita el ingreso del costo de una computadora. si el
costo del artefacto vale menos de 500 soles se aplica un descuento del 4% sobre dicho costo, si
el costo es mayor e igual a 500 y menor e igual a 1200 la tasa de descuento es de 6% sobre el
costo y si supera a 1200 el descuento es del 8%. Calcular el descuento, el impuesto del igv
(19%) y el precio a pagar por la computadora. El diseo del formulario es el siguiente:

3.

Elabora una aplicacin que permita el ingreso de una cantidad de pulgada y muestre su
equivalencia en pies, en yardas, en metros y en centmetros. Se sabe que un pie equivale a 12
pulgadas, una yarda equivale a 3 pies, una pulgada a 2.52 centmetros y un metro a 100
centmetros. Propone t mismo el diseo del formulario.

4. Elabora una aplicacin que permita el ingreso de dos nmeros y muestre el doble del nmero
mayor y el cuadrado del nmero menor. Propone t mismo el diseo del formulario.
Ing. Oscar Ascn Valdivia

20

5.

6.

Implementar una aplicacin que permita acumular las ventas de los pasajes Vendidos a los clientes de
una determinada empresa.

Implementar una aplicacin que permita calcular el importe de llamadas Nacionales y Extranjeras y el
total a pagar (PN + PE).

7. Implementar una aplicacin que permita Calcular el sub total y contar el nmero de ventas de una
determinada empresa.

Ing. Oscar Ascn Valdivia

21

JOptionPane
Introduccin
Un dilogo es una ventana independiente tambin llamada subventana que pretende mostrar un
aviso temporal al margen de la ventana de la aplicacin principal de Swing. Los Dilogos ms
comunes son mostrar un mensaje de error o de advertencia a un usuario.
Libreria
JOptionPane facilita el mostrar una ventana emergente en Java o tambin se usa para pedir un
valor a los usuarios o informarles de algo.
Para hacer uso de la herramienta JOptionPane se debe de importar la siguiente libreria:
javax.swing.JOptionPane;
Metodos Basicos de JOptionPane
JOptionPane cuenta con estos cuatro mtodos bsicos para su manejo y uso aunque existen
muchos ms solo haremos nfasis en los siguientes:
showOptionDialog();
showInputDialog();
showMessageDialog();
showConfirmDialog();
showOptionDialog
Tenemos un mtodo JOptionPane.showOptionDialog() que nos muestra la ventana ms
configurable de todas, en ella debemos definir todos los botones que lleva. De hecho, las
dems ventanas disponibles con JOptionPane se construyen a partir de esta. Por ello, al
mtodo debemos pasarle muchos parmetros:
parentComponent: A partir de este componente, se intentar determinar cul es la ventana
que debe hacer de padre del JOptionPane. Se puede pasar null, pero conviene pasar, por
ejemplo, el botn desde el cual se lanza la accin que provoca que se visualice el
JOptionPane. De esta manera, la ventana de aviso se visualizar sobre el botn y no se podr
ir detrs del mismo si hacemos click en otro sitio.
message: El mensaje a mostrar, habitualmente un String
title: El ttulo para la ventana.
optionType: Un entero indicando qu opciones queremos que tenga la ventana. Los posibles
valores son las constantes definidas en JOptionPane: DEFAULT_OPTION,
YES_NO_OPTION, YES_NO_CANCEL_OPTION, o OK_CANCEL_OPTION.

Ing. Oscar Ascn Valdivia

22

messageType: Un entero para indicar qu tipo de mensaje estamos mostrando. Este tipo
servir para que se determine qu icono mostrar. Los posibles valores son constantes definidas
en JOptionPane: ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE,
QUESTION_MESSAGE, o PLAIN_MESSAGE
icon: Un icono para mostrar. Si ponemos null, saldr el icono adecuado segn el parmetro
messageType.
options: Un array de objects que determinan las posibles opciones. Si los objetos son
componentes visuales, aparecern tal cual como opciones. Si son String, el JOptionPane
pondr tantos botones como String.Si se pasa null, saldrn los botones por defecto que se
hayan indicado en optionType.
initialValue: Seleccin por defecto. Debe ser uno de los Object que hayamos pasado en el
parmetro options. Se puede pasar null.
La llamada a JOptionPane.showOptionDialog() devuelve un entero que representa la opcin
que ha seleccionado el usuario. La primera de las opciones del array es la posicin cero. Si se
cierra la ventana con la cruz de la esquina superior derecha, el mtodo devolver -1.

Ejemplo
int seleccion = JOptionPane.showOptionDialog( unComponentePadre, "Seleccione opcion",
"Selector de opciones", JOptionPane.QUESTION_MESSAGE, null, new Object[] { "opcion
1", "opcion 2", "opcion 3" }, opcion 1");

showInputDialog();
Tenemos varios mtodos JOptionPane.showInputDialog() y la diferencia entre ellos es que
tienen ms o menos parmetros, segn queramos aceptar o no las opciones por defecto. Los
parmetros y sus significados son muy similares a los del mtodo showOptionDialog(),

Ing. Oscar Ascn Valdivia

23

Ejemplo
String
seleccion
=
JOptionPane.showInputDialog(
JOptionPane.QUESTION_MESSAGE);

null,

"Input

dialog",

showMessageDialog();
Esta es la ms sencilla de todas, slo muestra una ventana de aviso al usuario. La ejecucin se
detiene hasta que el usuario cierra la ventana. Hay varios mtodos con el mismo nombre y ms
o menos parmetros, en funcin de si aceptamos las opciones por defecto (icono, por ejemplo)
o queremos cambiar alguna cosa.
Los iconos usados del JOptionPane son los siguientes y son los que recibe como parametro la
mayoria de los metodos que necesitan un icono de mensaje

Ejemplo
JOptionPane.showMessageDialog(null,
"Hola
JOptionPane.INFORMATION_MESSAGE);

Ing. Oscar Ascn Valdivia

Mundo",

"Lo

de

siempre",

24

showConfirmDialog();
Este mtodo muestra una ventana pidiendo una confirmacin al usuario y da al usuario opcin de
aceptar o cancelar.El mtodo devuelve un entero indicando la respuesta del usuario. Los valores de
ese entero puede ser alguna de las constantes definidas en JOptionPane: YES_OPTION,
NO_OPTION, CANCEL_OPTION, OK_OPTION, CLOSED_OPTION
Ejemplo
int
confirmado
=
JOptionPane.showConfirmDialog(
confirmas?,JOptionPane.QUESTION_MESSAGE);

Ing. Oscar Ascn Valdivia

null,

"Lo

25

USO DE LOSOBJETOS JRADIOBUTTON Y JCHECKBOX

ObjetodeControlJRadioButton
Un objeto de control JRadioButton permite dibujar en el formulario una opcin que puede ser
seleccionada, es decir, es un objeto que define una opcin o alternativa para ser elegida. Este objeto
debe mostrarse ms de una vez en el diseo del formulario para que exista la alternativa de
seleccionar una opcin de un grupo de opciones. Los objetos son mutuamente excluyentes con
respeto a la seleccin. Se tiene la siguiente figura:

En la figura anterior se observan tres objetos JRadioButton y para poder seleccionar sola una
alternativa se tendr que usar el objeto ButtonGroup que es un elemento que no se llega a dibujar
en el formulario pero permite agrupar objetos JRadioButton y una vez agrupados permite la
seleccin de una opcin cuando la aplicacin se encuentre en ejecucin. En las dos aplicaciones que
veremos ms adelante se har hincapi en este asunto.
Propiedades ms usadas:

Text: Permite establecer la expresin de la opcin.

Font: Permite establecer el tipo de letra en el objeto de control.

Enabled: Para habilitar o inhabilitar el uso del objeto de control.

Mtodo ms usado:

isSelected(): retorna el valor de verdadero si el objeto se encuentra seleccionado y falso en


caso contrario.

ObjetodeControl JCheckBox
Un objeto de control JCheckBox permite dibujar en el formulario una opcin que puede ser
seleccionada, es decir, es un objeto que define una opcin o alternativa para ser elegida. La
diferencia con respecto al objeto de control JRadioButton es que si se tienen dos o ms objetos
JCheckBox se puede seleccionar ms de una opcin o simplemente no seleccionar ninguna, por lo
que no son mutuamente excluyentes. Se tiene la siguiente figura:

Ing. Oscar Ascn Valdivia

26

En la figura anterior se observa un objeto JCheckBox que expresa como opcin Contado, si es
seleccionado significa que la forma de pago es al contado y si se deja como no seleccionado
significa que la forma de pago no es al contado por lo que se puede asumir que es al crdito.
Propiedades ms usadas:

Text: Permite establecer la expresin de la opcin.

Font: Permite establecer el tipo de letra en el objeto de control.

Enabled: Para habilitar o inhabilitar el uso del objeto de control.

Mtodo ms usado:
isSelected(): retorna el valor de verdadero si el objeto se encuentra seleccionado y falso en
caso contrario.

Aplicacin1
Vamos a construir una aplicacin en entorno visual que permita ingresar del costo de un artefacto,
del tipo de artefacto y la forma de pago, para calcular lo siguiente:
a. Si el pago es al contado hay un descuento del 6% del costo del artefacto si el tipo de
artefacto es Audio, 8% si es Video y 5% si es Lnea Blanca.
b. Si el pago es al crdito hay un incremento del 7% sobre el costo del artefacto si es el tipo de
artefacto es Audio, 9% si es Video y 10% si es Lnea Blanca.
c. El monto del IGV es del 19% sobre el costo del artefacto luego de aplicar el descuento o
el incremento.
d. El monto a pagar que es el costo del artefacto (descontado o incrementado) ms el monto del
IGV.
Solucin:

Procedamos a crear un proyecto denominado Aplicaciones dentro de una carpeta llamada


Practicas y como clase Aplicacin1 que pertenece al paquete de ejemplos. Luego damos
click en el botn de comando Finish.

Ing. Oscar Ascn Valdivia

27

Seleccionamos la carpeta de ejemplos, damos click con el botn derecho del mouse y
elegimos la opcin New y posteriormente JframeForm.

A continuacin, se visualiza la siguiente ventana y cambiamos el nombre de la clase


indicado por la flecha:

Ahora procedemos a disear el formulario, donde se har nfasis en el manejo de los


nuevos objetos de control. No olvidemos que cada vez que usemos un formulario su
Layout debe ser cambiado a Absolute Layout como se aprecia en la siguiente figura:

Ing. Oscar Ascn Valdivia

28

Dibujamos como etiqueta (usando un JLabel) la expresin: Costo del Artefacto y el


cuadro de texto (Usando un JtextField). Tambin a travs de una etiqueta colocamos la
expresin Tipo de Artefacto y luego 3 objetos JRadioButton. Los objetos JRadioButton
deben expresar Audio, Video y Lnea Blanca. Debemos recordar que se tendr que
hacer uso de la propiedad Text para cambiar las expresiones.

De la paleta SwingControls seleccionamos ButtonGroup y lo arrastramos hacia el formulario.


Esto ocasionar que se cree un objeto ButtonGroup1 tal como se aprecia en el
navegador (lado izquierdo del diseo del formulario).

Ing. Oscar Ascn Valdivia

29

Seleccionamos el objeto JRadioButton referido a Audio y luego buscamos en la ventana de


propiedades, la propiedad buttongroup y luego eligimos buttongroup1

Lo mismo hacemos para los tipos de artefactos Video y Lnea Blanca. Por lo tanto, los tres
objetos JRadioButton deben pertenecer a buttongroup1. Si pretendemos en estos
momentos ejecutar el formulario podremos seleccionar uno de los tres tipos de artefactos.

A continuacin, agregamos un objeto JCheckBox para indicar la forma de pago que solo
puede ser de dos posibilidades: Contado o Crdito. Seleccionado significa al Contado, no
seleccionado significa al crdito. Agregamos los dems objetos de control que se visualiza
en el diseo del formulario y que fueron estudiados en la sesin anterior. En el diseo del
formulario se indica los nombres de los objetos y debemos recordar que para asignar un
nombre a un objeto de control hay que seleccionar al objeto y dando click con el botn

Ing. Oscar Ascn Valdivia

30

derecho del mouse se procede a seleccionar la opcin Change Variable Name

Procedamos a programar en los botones de comando:


En el botn de comando CALCULAR (btnCalcular), al darle doble click, escribimos el
siguiente cdigo: (lo escrito en azul)
private void btnCalcularActionPerformed(java.awt.event.ActionEvent evt)
{
double costo, dcto=0, incre=0, igv, mpagar;
costo=Double.parseDouble(txtCosto.getText());
if (chkContado.isSelected())
{
if (rbAudio.isSelected())
dcto=costo*0.06;
if (rbVideo.isSelected())
dcto=costo*0.08;
if (rbLinea.isSelected())
dcto=costo*0.05;
}
else
{
if (rbAudio.isSelected())
incre=costo*0.07;
if (rbVideo.isSelected())
incre=costo*0.09;
if (rbLinea.isSelected())
incre=costo*0.1;
}
igv=(costo-dcto+incre)*0.19; mpagar=(costodcto+incre)+igv; txtDcto.setText(String.valueOf(dcto));
txtIncre.setText(String.valueOf(incre));
txtIgv.setText(String.valueOf(igv));
txtMPagar.setText(String.valueOf(mpagar));
}

Ing. Oscar Ascn Valdivia

31

Una vez declaradas las variables de memoria, en la variable costo se asigna el valor
introducido en el cuadro de texto txtCosto gracias al mtodo getText() que logra obtener el
dato colocado en el objeto de control. Con la sentencia if se evala si est seleccionada la
opcin al contado y, si es as, se procede a evaluar cul de los tipos de artefactos est
seleccionado para aplicar el clculo del descuento que ser asignando a la variable de
memoria dcto. En caso que no est seleccionada la opcin al Contado entonces se asume
que la forma de pago es al crdito y se procede a evaluar cul de los tipos de artefactos est
seleccionado para aplicar el clculo del incremento que ser asignado a la variable incre. A
continuacin, se calcula el IGV y el monto a pagar. Luego, los objetos de control txtDcto,
txtIncre, txtIgv y txtMPagar reciben valores a travs de las variables de memoria dcto,
incre, igv y mpagar en sus cuadros de textos gracias al mtodo setText(), por supuesto
previamente se tiene que convertir a cadena de texto los valores numricos de las variables
usando el mtodo valueOf() de la clase String.
En el botn de comando BORRAR (btnBorrar), luego de darle doble click, escribimos el
siguiente cdigo: (lo escrito en azul)
private void btnBorrarActionPerformed(java.awt.event.ActionEvent evt)
{
txtCosto.setText();
txtDcto.setText();
txtIncre.setText(); txtIgv.setText();
txtMPagar.setText();
rbAudio.setSelected(false);
rbVideo.setSelected(false);
rbLinea.setSelected(false);
chkContado.setSelected(false);
txtCosto.requestFocus();
}

Se limpian los cuadros de textos con slo poner en el mtodo setText() y a los objetos
botn de radio (JRadioButton) y el objeto de caja verificacin (JCheckBox) se les aplica el
mtodo setSelected() para lograr quitar la seleccin de estos objetos. Lo ms importante
es que los cuadros de textos estn limpios para poder permitir el ingreso de nuevos datos.
En el botn de comando CERRAR (btnCerrar), luego de darle doble click, escribimos el
siguiente cdigo: (lo escrito en azul)
private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt)
{
dispose();
}

El mtodo dispose() permite descargar el formulario y terminar la ejecucin de la


aplicacin.

Luego procedemos a ejecutar la aplicacin seleccionando frmAplicacion1 en la pgina o


pestaa Proyects (se encuentra al lado izquierdo del diseo del formulario) y al dar
click botn derecho elegimos Run File.

Ing. Oscar Ascn Valdivia

32

Tarea N 2
1. Disear e implementar el siguiente formulario que permite calcular el descuento de afiliacin, utilizando
controles RadioButton

2. Disear e implementar el siguiente formulario, utilizando controles CheckBox, que permita calcular diversos
descuentos.

3. Desarrollar el siguiente ejercicio (Afiliacin: AFP=11%, ONP=15%) (Descuentos: Judicial =5%, Prstamo
=10, Alimentos =8%)

Ing. Oscar Ascn Valdivia

33

USODELOBJETO JLIST

Objeto de ControlJList
Un objeto de control Jlist permite dibujar en el formulario una caja de lista de opciones (tems).
Cuando el formulario se encuentra en la etapa de ejecucin se pueden seleccionar sus tems.
Pero para trabajar con este objeto es necesario usar un objeto de la categora de Swing Containers
denominado JScrollPane. El objeto JScrollPane permite hacer que el objeto JList tenga barra de
desplazamiento que es necesaria cuando el nmero de tems es grande y no puede ser visto a
simple vista en el objeto de control JList. Cabe sealar que los objetos que pertenecen a Swing
Containers sern estudiados con mayor detalle en la segunda unidad de aprendizaje del curso, pero
el uso de Jlist nos obliga utilizar el objeto contenedor JScrollPane.
Propiedades ms usadas:
Model: Permite establecer los tems de la caja de lista.

Font: Permite establecer el tipo de letra en el objeto de control.

Enabled: Para habilitar o inhabilitar el uso del objeto de control.

Mtodos ms usados:
setModel(): Permite vincular una variable objeto de tipo model a un objeto de control
JList.
getSelectedValue(): Contiene el tem seleccionado de la caja de lista.

Ing. Oscar Ascn Valdivia

34

getSelectedIndex(): Contiene el valor del ndice activo o ndice actual del tem
seleccionado de la caja de lista. El ndice es un valor numrico correlativo no visible que va
desde 0.

Evento ms usado:

ValueChanged(): Sucede cuando el usuario selecciona un tem de la caja de lista.

Aplicacin
Construir una aplicacin que permita el ingreso del nombre del alumno y poder seleccionar
uno o varios cursos que ste quisiera llevar. El pago por los cursos seleccionados podr ser pagado
al contado o al crdito. Si el pago es al contado hay un descuento del 5% del costo total de los
cursos a llevar y si el pago es al crdito se pagar un incremento del 7% del costo total. La
aplicacin debe mostrar el descuento, el incremento y el monto a pagar por los seleccionados.
Solucin:

Iniciamos con la creacin de un proyecto denominado Aplicaciones. Seleccionamos del


men, la opcin File y luego New Proyect. Aparece la ventana de New Proyect y damos
clic en el botn de comando Next. En la ventana New Java Application indicamos como
nombre de proyecto Aplicaciones creando como paquete aplicaciones. Al dar click en el
botn de comando Finish nos encontramos con el entorno de desarrollo.

Ing. Oscar Ascn Valdivia

35

Seleccionamos el paquete de aplicaciones y al dar click con el botn derecho del mouse
elegimos la opcin New y luego JFrameForm.

A continuacin se muestra la ventana New Jframe Form que debe quedar as:

Ing. Oscar Ascn Valdivia

36

No olvidemos de dar click botn derecho del mouse sobre el formulario y establecer
AbsoluteLayout en Set Layout.

Procedemos a colocar un objeto Jlabel con la expresin ALUMNO: acompaado de un


cuadro de texto (JTextField). Luego, colocar un Jlabel que exprese Seleccionar Cursos y
debajo de esta expresin dibujar un objeto JScrollPane.

Ing. Oscar Ascn Valdivia

37

En el objeto JScrollPane colocamos un objeto JList y al momento de llevarlo al diseo


del formulario se muestra de la siguiente manera:

Luego queda el objeto JList dentro del objeto JScrollPane.

Seleccionamos el objeto de control Jlist1 y en la ventana de propiedades se tiene una


propiedad llamada model que permite colocar los tems dentro de la caja de lista Jlist1.

Ing. Oscar Ascn Valdivia

38

Luego de seleccionar el botn de comando referido a la propiedad model se muestra


la siguiente ventana:

Ing. Oscar Ascn Valdivia

39

Ingresamos los nombres de los cursos tal como se muestra en la siguiente ventana:

Luego dar clic en el botn de comando OK.

El diseo del formulario debe quedar as:

Ing. Oscar Ascn Valdivia

40

Luego vamos a colocar en el diseo del formulario otro objeto JScrollPane junto a JList1
para luego poner un objeto JList. En esta lista colocaremos los costos de cada curso.

Adicionalmente pondremos en el diseo del formulario dos botones de comando referido


a Agregar y Eliminar y junto a ellos dos objetos Jlist, por supuesto previamente
debemos usar dos objetos JScrollPane.

Ing. Oscar Ascn Valdivia

41

Posteriormente agregamos las formas de pago con dos objetos JRadioButton, los botones de
comando Calcular, Limpiar y Cerrar. Finalmente, los objetos que mostrarn el descuento, el
incremento y el monto a pagar por los cursos seleccionados. El diseo del formulario debe
quedar as:

Ahora bien, si observamos en el diseo del formulario de las cuatros objetos Jlist, dos de
ellos ya tienen tems como lo son lstCursos y lstCostos. En cambio, los objetos lstCursel y
lstCos se llenarn en funcin a lo seleccionado y agregado con el botn de comando
Agregar. Por lo tanto, debemos definir un modelo (model) para aquellas listas que se
llenarn en tiempo de ejecucin. Por esto debemos definir las variables modelo1 y modelo2
como DefaultListModel(), como se muestra a continuacin (escribe lo que indica las flechas
de color rojo):

Ing. Oscar Ascn Valdivia

42

Para que funcione correctamente la clase DefaultListModel es necesario agregar el paquete


import javax.swing.*; despus del paquete Aplicaciones.

Una vez definidas las variables modelo1 y modelo2, en el mtodo constructor se debe
indicar que la variable modelo1 es para la caja de lista lstCursel y la variable modelo2 es
para la caja de lista lstCos, todo esto se podr hacer con el mtodo setModel(). Tambin
hacemos que los botones de comando Agregar y Eliminar se inhabiliten desde la ejecucin
de la aplicacin.

Bien, ahora debemos programar sobre el objeto lsrCursos, para que el usuario al momento de
seleccionar un curso se marque simultneamente el costo y se habilite el botn de
comando Agregar. Para esto se debe seleccionar un evento de la caja de lista lstCursos
llamado ValueChanged perteneciente a ListSelection.

Ing. Oscar Ascn Valdivia

43

En el evento mencionado programa lo siguiente:

Se declara una variable entera llamada ndice, esta variable recibe el valor del ndice
del tem seleccionado gracias al mtodo getSelectedIndex(). Por ejemplo, si de la caja de
lista lstCursos estuviera seleccionado Power Builder, ste mtodo devolvera el valor de 1.
El valor 0 lo tiene Visual Basic, el valor de 2 lo tiene Visual Java y as sucesivamente. Lo
que se quiere es seleccionar el tem de la caja de lista de lstCostos que tenga el mismo
ndice que lstCursos, para ello se usa el mtodo setSelectedIndex(indice) para dar el
mismo ndice a la caja de lista lstCostos. Finalmente, hacemos que el botn de comando
Agregar se habilite con el mtodo setEnabled().

A continuacin, escribimos el siguiente cdigo en el botn de comando Agregar


(slo se escribe lo que seala la llave de color rojo):

Aqu declaramos dos variables de tipo String llamados curso y costo y las variables
enteras cuenta, i y total. En la variable curso se almacena el curso seleccionado en la lista
lstCursos, el mtodo getSelectionValue() trae consigo el tem seleccionado pero lo trae
como objeto y al poner (String) hacemos que se convierta en cadena para que pueda ser
asignada a la variable curso. De igual manera se hace con la variable costo. Para agregar un
tem a una caja de lista se usa el mtodo addElement perteneciente al objeto variable
modelo1 o modelo2. Con la variable cuenta se almacena el total de tems que hay en la caja
de lista lstCos pero a travs de la variable objeto modelo2. Con la sentencia repetitiva for se
busca extraer cada uno de los tems de la caja de lista lstCos e ir sumando en cada
interaccin para poder encontrar el costo total de los cursos seleccionados, para esto usamos
el mtodo elementAt() que devuelve un tem de una caja de lista con slo indicar el valor del
ndice. Finalmente en el objeto txtTotal se visualiza el contenido de la variable total e
inhabilitamos el botn de comando Agregar.
Ahora programamos en la caja de lista lstCursel el evento ValueChanged cuando
querramos seleccionar un curso para luego eliminarlo (slo escribe lo que seala la llave de color
rojo).

Ing. Oscar Ascn Valdivia

44

La idea es la misma que se aplic en la programacin sobre el evento ValueChanged del


objeto lstCursos. La diferencia est en que esta vez se habilita el botn de comando
Eliminar.

En el botn de comando Eliminar colocamos la siguiente programacin (slo se escribe


lo que seala la llave de color rojo):

Lo novedoso de esta programacin es la presencia del mtodo remove() que elimina un tem
de la lista a travs de la variable objeto modelo1 modelo2 dado el valor del ndice. Al
final de la programacin se vuelve a calcular el costo total de los cursos seleccionados y se
inhabilita el botn de comando Eliminar.

Ahora procedemos a programar en el botn de comando Calcular (slo se escribe lo que


seala la llave de color rojo):

Ing. Oscar Ascn Valdivia

45

A continuacin procedemos a programar en el botn de comando Limpiar (slo se escribe


lo que seala la llave de color rojo):

En esta programacin, la novedad est en que para limpiar totalmente una caja de lista se
hace con el mtodo clear() perteneciente a las variables objeto modelo1 y modelo2, con lo
cual tambin se hace la limpieza a los objetos lstCursel y lstCos. Tambin, hacemos el uso
del mtodo setSelectedIndex() dando el valor de 5, ya que dicho ndice no existe en la caja
de lista, lo que hace que se pierda lo seleccionado.

Finalmente programamos en el botn de comando Cerrar:

Ing. Oscar Ascn Valdivia

46

USODELOBJETOJCOMBOBOX

ObjetodeControlJComboBox
Un objeto de control JComboBox permite dibujar en el formulario una lista desplegadle, la cual
contiene opciones (tems). ComboBox significa cuadro combinado porque combina un cuadro de
texto con una caja de lista, es como si fuera un JtextField mezclado o combinado con un Jlist. Tiene
la particularidad de que se debe seleccionar un botn de comando de despliegue y luego seleccionar
la opcin o tem.

Una vez dado clic en el botn de despliegue se muestra las opciones o tems del objeto

Propiedades ms usadas:

Model: Permite establecer los tems de la caja de lista.

Font: Permite establecer el tipo de letra en el objeto de control.

Enabled: Para habilitar o inhabilitar el uso del objeto de control.

getSelectedIndex: Contiene el ndice del tem seleccionado

setSelectedItem: Contiene el tem seleccionado

Ing. Oscar Ascn Valdivia

47

Mtodos ms usados:

setModel(): Permite vincular una variable objeto de tipo model a un objeto de control
JList.
getItemAt(): Devuelve el tem que est en el ndice que se especifica.
getSelectedIndex(): Contiene el valor del ndice activo o ndice actual del tem
seleccionado de la caja de lista. El ndice es un valor numrico correlativo no visible que va
desde 0.

Evento ms usado:

ValueChanged(): Sucede cuando el usuario selecciona un tem de la caja de lista.

Aplicacin
Construir una aplicacin que permita el ingreso del nombre del alumno y poder seleccionar
de una lista desplegadle una categora de los cursos. Al momento de seleccionar la categora se
debe mostrar los cursos con sus respectivos costos en las cajas de listas (los JList que se
muestran al lado izquierdo del diseo del formulario). Una vez visualizado los cursos el usuario
puede seleccionar y agregar en las cajas de listas (los Jlist que se muestran al lado derecho del
diseo del formulario) los cursos solicitados por el alumno. El pago por el servicio de enseanza se
establece de la siguiente manera:

Existe un pago por matrcula del 80% del costo total (suma de los costos de los cursos
escogidos) siempre y cuando quiera el alumno llevar un solo curso, 60% del costo total si
lleva dos cursos y 50% del costo total si lleva 3 o ms cursos.

El costo total tiene un descuento del 10% si la forma de pago es al contado y un incremento
del 10% si es al crdito.

Existe un pago mensual cuando la forma de pago es al crdito y es equivalente al costo total
incrementado dividido en 4 cuotas.

Solucin:

Usars el mismo proyecto utilizado en la sesin anterior y slo agregars un


formulario (Jframe).

Ing. Oscar Ascn Valdivia

48

Inmediatamente se muestra la siguiente ventana:

Luego dar clic en el botn de comando Finish.

A continuacin se muestra el entorno de desarrollo de NetBeans y no olvides de dar clic


en el botn derecho del mouse sobre el formulario y establece AbsoluteLayout en Set
Layout.

Procede a colocar un objeto Jlabel con la expresin ALUMNO: acompaado de un


cuadro de texto (JTextField). Por debajo de ALUMNO: colocar un objeto Jlabel que
exprese Categora de Cursos: y al lado derecho de ste objeto colocar un objeto
JComboBox.

Ing. Oscar Ascn Valdivia

49

Selecciona el objeto JComboBox y elige en la ventana de propiedades la propiedad


model que permite colocar los tems dentro de la caja de lista desplegadle.

Luego de seleccionar el botn de comando referido a la propiedad model se muestra


la siguiente ventana:

Ing. Oscar Ascn Valdivia

50

Ingresas las categoras de cursos como son: <Seleccionar>, Diseo Grfico, Diseo
Web, Ofimtica, Lenguajes de Programacin y Sistemas Operativos, quedando el diseo
del formulario de la siguiente manera:

Colocars un objeto Jlabel con la expresin Cursos Ofertados y otro objeto Jlabel ubicado
al lado derecho de ste ltimo con la expresin Costo. Aades dos listas debajo de las
expresiones de estos dos ltimos Jlabel, haciendo que los tems sean eliminados o
removidos a travs del uso de la propiedad model. Luego agregas dos botones de
comando que indiquen Agregar y Eliminar. Posteriormente, aades dos objetos Jlabel que
expresen: Cursos Escogidos y Costo y debajo de estos objetos Jlabel agregas dos objetos
JList siendo tambin eliminados o removidos los tem a travs del uso de la propiedad
model.

Ing. Oscar Ascn Valdivia

51

A continuacin agregas un objeto Jlabel con la expresin Forma de Pago: y al lado


derecho de ste ltimo objeto colocas un JComboBox que debe contener como tems:
<Seleccionar>, Contado y Crdito. Luego los botones de comando CALCULAR, BORRAR
y CERRAR y los objetos que mostrarn el monto de la matrcula, el costo total y el
pago mensual. Los nombres de los objetos de control dibujados en el formulario queda de
la siguiente manera:

Ing. Oscar Ascn Valdivia

52

Ahora bien, si observamos en el diseo del formulario, los cuatros objetos JList no tienen
tems. Los objetos JList referidos a Cursos Ofertados y Costo (objetos ubicados al lado
izquierdo del diseo del formulario) se llenarn de tems de acuerdo a lo seleccionado
en la lista desplegadle referido a la Categora de Cursos. Los objetos Jlist referidos a Cursos
Escogidos y Costos se llenarn en la medida que se seleccione un curso ofertado y se
agregue con el botn de comando Agregar. Los 4 objetos JList deben tener un modelo
(model) cada uno, para ello debes definir 4 variables: modelo1, modelo2, modelo3 y
modelo4 del tipo DefaultListModel(). Para poder hacer uso de la clase DefaultListModel se
debe hacer uso del paquete javax.swing.*; y debe ser escrito despus del paquete
Aplicaciones.

Ahora procede a escribir la definicin de las variables del tipo DefaultListModel en la


clase frmCursosExtension.

Una vez definido las 4 variables de memoria del tipo DefaultListModel, en el mtodo
constructor se debe indicar que la variable modelo1 es para la caja de lista lstCurOfer, la
variable modelo2 para la caja de lista lstCostos, la variable modelo3 es para la caja de lista
lstCurEsco y la variable modelo4 es para la caja de lista lstCos. Tambin hacemos que los
botones de comando Agregar y Eliminar se inhabilite su uso desde la ejecucin de la
aplicacin. Adems le indicamos una localizacin dentro de la pantalla y el tamao del
formulario (slo escribe lo que seala la llave de color rojo).

Ing. Oscar Ascn Valdivia

53

Ahora le toca el turno en la programacin al objeto JComboBox denominado cboCategorias


en el evento ActionPerformed, para ello debes seleccionar el objeto mencionado y dando
clic botn derecho del mouse eliges Events y luego como Actions seleccionas
ActionPerformed.

En el evento mencionado programa lo siguiente (slo escribe lo que seala la llave de color
rojo):

Ing. Oscar Ascn Valdivia

54

Se declara una variable de memoria llamada indice para que almacene el ndice actual del
tem seleccionado del objeto JComboBox llamado cboCategorias. Sabiendo el valor del
ndice actual o activo se hace uso de una sentencia selectiva switch que evala cul de los
tems ha sido seleccionado. Se sabe que el primer tem de la lista desplegadle es
<Seleccionar> y le corresponde el ndice 0, Diseo Grfico el ndice 1, Diseo Web el
ndice 2 y as sucesivamente. Cuando sea
<Seleccionar> solo se procede a limpiar los objetos lstCurOfer y lstCostos a travs
del mtodo clear() aplicados a las variables modelo1 y modelo2. Si el tem seleccionado es
Diseo Grfico se procede a limpiar los objetos lstCurOfer y lstCostos y se agrega los
nombres de los cursos Corel Draw y Photo Show con sus respectivos costos a travs del
uso del mtodo addElement aplicados a las variables modelo1 y modelo2 que tienen
relacin directa con los objetos lstCurOfer y lstCostos. De igual forma se trabaja para los
dems tems del objeto JComboBox llamado cboCategorias.

Si en estos momentos procedes a ejecutar la aplicacin se mostrar el formulario de la


siguiente manera:

Y si seleccionas el tem Diseo Grfico se visualizar los cursos con sus respectivos
costos en los JList del lado izquierdo del diseo del formulario.

Ing. Oscar Ascn Valdivia

55

Selecciona el objeto lstCurOfer y ubcate en el evento ValueChaged perteneciente a


ListSelection y ste a su vez pertenece a Events. Recuerda que esto se hace seleccionando
al objeto lstCurOfer y dando clic botn derecho del mouse se muestra un men
flotante. En el evento mencionado programa lo siguiente:

Se declara una variable entera llamada ndice, esta variable recibe el valor del ndice
del tem seleccionado gracias al mtodo getSelectedIndex().
Lo que se quiere es
seleccionar el tem de la caja de lista de lstCostos que tenga el mismo ndice que
lstCurOfer, para ello se usa el mtodo setSelectedIndex(indice) para dar el mismo ndice a
la caja de lista lstCostos. Finalmente hacemos que el botn de comando Agregar se habilite
con el mtodo setEnabled()

A continuacin escribe el siguiente cdigo en el botn de comando Agregar (slo escribe


lo que seala la llave de color rojo):

Aqu declaramos dos variables de tipo String llamados curso y costo y las variables
enteras total y i. En la variable curso se almacena el curso seleccionado en la lista
lstCurOfer, el mtodo getSelectionValue() trae consigo el tem seleccionado pero lo trae
como objeto y al poner (String) hacemos que se convierta en cadena de caracteres
para que pueda ser asignada a la variable curso. De igual manera se hace con la variable
costo. Para agregar un tem a una caja de lista se usa el mtodo addElement perteneciente al
Ing. Oscar Ascn Valdivia

56

objeto variable modelo3 o modelo4. Finalmente inhabilitamos el botn de comando


Agregar.

Ahora programa en la caja de lista lstCurEsco en el evento ValueChanged cuando desees


seleccionar un curso para luego eliminarlo (slo escribe lo que seala la llave de color rojo).

La idea es la misma que se aplic en la programacin sobre el evento ValueChanged del


objeto lstCurOfer. La diferencia est en que esta vez se habilita el uso del botn de
comando Eliminar.

En el botn de comando eliminar colocas la siguiente programacin (slo escribe lo que


seala la llave de color rojo):

En esta programacin se hace uso del mtodo remove() que elimina un tem de la lista a
travs de la variable objeto modelo3 modelo4 dado el valor del ndice. Al final de la
programacin se inhabilita el botn de comando Eliminar.

Ahora procede a programar en el botn de comando Calcular (slo escribe lo que seala la
llave de color rojo):

Ing. Oscar Ascn Valdivia

57

Se declara la variable de memoria cuenta que almacena la cantidad de tems existentes en la


caja de lista lstCurEsco a travs del uso del mtodo Size() aplicado a la variable
modelo3. Tambin se declara una variable de memoria i de tipo entero y tres variables de
tipo float para el clculo de la matrcula, el costo total y el pago mensual. A travs de una
sentencia for se procede a obtener los valores de la caja de lista lstCos usando la variable
modelo4 con el mtodo elementAt(), para que estos valores sean sumados ya acumulados en
la variable de memoria ctotal. En la primera sentencia if se procede a averiguar si las cajas
de listas lstCurEsco y LstCos tiene tems, si no tienen tems se visualiza un mensaje de
error indicando la necesidad de seleccionar y agregar cursos y se procede a suspender
la ejecucin del programa gracias a instruccin return (retornar). En los siguientes tres if se
calcula el monto de la matrcula aplicando el porcentaje indicado en el enunciado de la
aplicacin. En la siguiente sentencia if se evala si se seleccion una forma de pago y si no
se logr hacerlo muestra un mensaje de error y suspende la ejecucin del programa. Luego
con las siguientes sentencias if se evala la forma de pago y se procede hacer los clculos
respectivos. Finalmente se los resultados en las variables de memoria de tipo float se envan
a los objetos JTextField par ser visualizados en el formulario.

Ing. Oscar Ascn Valdivia

58

La programacin en los botones de comando Borrar y Cerrar es de la misma forma como se


aplic en los temas o sesiones anteriores. Cuando procedas a ejecutar tu aplicacin se debe
visualizar el formulario y una vez interactuado se mostrarn los resultados.

TAREA

1. Desarrollar un programa que solo permita agregar 5 trabajadores y eliminar a un trabajador seleccionado.

Ing. Oscar Ascn Valdivia

59

2. . Desarrollar e implementar un formulario que permita trabajar con arreglos

3. Disear el formulario planilla, al seleccionar el cargo debe de mostrarse el jornal da (Obrero:20,


Maestro: 30, Operario: 40), mostrar el sueldo, todos los descuentos y el sueldo neto, adems debe de
mostrar el total a pagar.

Ing. Oscar Ascn Valdivia

60

4. Disear formulario Ventas

Nuevo: Limpia los cuadros


textos del formulario
Calcular: Calcula el subtotal
en dlares y soles (precio,
cantidad, tipo cambio)
Agregar:
Agrega
los
elementos a la listas y va
acumulando el monto bruto
de subtotal S/.
Eliminar:
Elimina
el
elemento seleccionado de
las listas adems disminuye
el monto bruto
Pagar: Depende de la forma
de pago; Contado su
incremento es de 0%, y
Crdito su incremento es de
10% del monto bruto.

USO DEL OBJETO JTABLE

Ing. Oscar Ascn Valdivia

61

ObjetodeControlJTable
Como programadores, sabemos muy bien que la presentacin de datos tabulados es una de las tareas
ms comunes que se presentan al momento de crear interfaces grficas; desde la simple tabla que
permite nicamente mostrar el resultado de una consulta, hasta las que permiten editar directamente
el contenido de cada celda, ordenar las columnas, personalizar su apariencia, etc. Todas las tareas
antes descritas, y muchas otras, son posibles de realizar utilizando la clase JTable; por supuesto,
mientras ms complejo sea el requerimiento a cubrir, se requerir en igual medida utilizar ms
mtodos o recursos de la clase.
Los modelos de tabla son objetos que implementan la interface TableModel; a travs de ellos es
posible personalizar mucho ms y mejor el comportamiento de los componentes Jtable,
permitiendo utilizar al mximo sus potencialidades.
El siguiente grfico intenta mostrar como cada componente JTable obtiene siempre sus datos
desde un modelo de tabla.

La clase AbstractTableModel es la que implementa directamente a la interface


TableModel, aunque es esta clase la que se recomienda extender para utilizarla como modelo de
tabla, existe un modelo de tabla predeterminado que facilita mucho el trabajo con tablas. Este
modelo predeterminado es la clase DefaultTableModel.

Propiedad ms usada:

Model: Permite definir el nmero de columnas y filas del objeto como tambin las

Ing. Oscar Ascn Valdivia

62

expresiones que irn en las columnas.


Mtodos ms usados:

addColumn(): Aade la columna al final de la matriz de columnas.

setModel(): Asigna el modelo de datos al objeto JTable.

GetRowCount(): Devuelve el nmero de filas en la tabla.

DefaultTableModel
Esta clase permite construir el modelo para el objeto Table. Los mtodos ms utilizados son:
addColumn(): Aade una columna al modelo.

AddRow(): Aade una fila al final del modelo.

getColumnCount(): Devuelve el nmero de columnas en esta tabla de datos.

getRowCount(): Devuelve el nmero de filas en esta tabla de datos.

getValueAt(): Devuelve un valor de atributo para la celda en la posicin row,


column.
insertRow(): Inserta una fila en el modelo.

RemoveRow(): Elimina del modelo segn la posicin de la fila indicada.

Aplicacin
Construir una aplicacin que permita calcular el promedio de las notas obtenidas en el curso de
Programacin Visual. La aplicacin debe permitir el ingreso del nombre del alumno, la nota de la I
Unidad, la nota de la II Unidad y la nota de la III Unidad. Adems debe permitir la seleccin del
turno a la que pertenece el alumno. A travs de un botn de comando debe agregar los datos en un
objeto Jtable, calculando el promedio de las notas; y a travs de otro botn de comando debe
eliminar la fila seleccionada en el objeto JTable. Tambin se debe mostrar el total de filas
agregadas en el objeto JTable.

Solucin:

Usaremos el mismo proyecto utilizado en la sesin anterior y slo agregars un


formulario (Jframe).

Ing. Oscar Ascn Valdivia

63

Inmediatamente se muestra la siguiente ventana:

Luego dar clic en el botn de comando Finish.

A continuacin se muestra el entorno de desarrollo de NetBeans y no olvides de dar clic


en el botn derecho del mouse sobre el formulario y establece AbsoluteLayout en Set
Layout.

Ing. Oscar Ascn Valdivia

64

Procedemos a colocar un objeto Jlabel con la expresin CALIFICACIONES DEL


CURSO DE PROGRAMACION VISUAL. Debajo de ste ttulo ubicar un objeto

Jlabel con la expresin ALUMNO: acompaado de un cuadro de texto (JTextField)


. A continuacin, colocar otro Jlabel con la expresin Nota de la I Unidad acompaado
de un cuadro de texto y de igual manera hacerlo para la segunda y tercera unidad. Luego
agregamos un objeto JCombobox para seleccionar el turno.

Seleccionamos el objeto JComboBox y elegimos en la ventana de propiedades, la propiedad


model que permite colocar los tems dentro de la caja de lista desplegadle. Elegimos el
botn de comando referido a la propiedad model se muestra la siguiente ventana:

Ing. Oscar Ascn Valdivia

65

Ingresamos <Seleccionar>,Maana, Tarde y Noche y luego hacemos click en el


botn de comando OK. Continuamos con el diseo del formulario agregando un botn de
comando Agregar y un botn de comando Eliminar. Luego procedemos a
agregar el objeto JTable.

Ing. Oscar Ascn Valdivia

66

Al ser dibujado el objeto JTable se observa en el panel de la izquierda que se vincula


a un objeto JScrollPane. El objeto Jtable tiene como propiedad principal a model.

Luego de seleccionar el botn de comando referido a la propiedad model se muestra


la siguiente ventana:

Observamos en la ventana anterior que por defecto el objeto Table propone la

Ing. Oscar Ascn Valdivia

67

conformacin de 4 columnas y 4 filas, dando la posibilidad de aumentar o disminuir el


nmero de columnas y filas. Adems podemos establecer los ttulos de cada columna. Aqu
debemos hacer hincapi que las columnas y las filas son tipo Object esto quiere decir
que un objeto JTable es una matriz de objetos (arreglo bidimensional). Nosotros vamos a
establecer el nmero de columnas a travs de la programacin y las filas se crearn en la
medida que se necesiten.

Los nombres de los objetos de control dibujados en el formulario queda de la


siguiente manera:

Vamos a proceder a programar. Comenzamos con hacer uso del paquete swing y
especficamente a las clases JoptionPane y a la clase JTable.

Ing. Oscar Ascn Valdivia

68

Luego procedemos a crear un modelo para el objeto JTable llamado Tabla a travs 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.

En el mtodo constructor programamos lo siguiente (slo escribe lo que se seala 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 Alumno, I Unidad, II Unidad, III
Unidad, Promedio y Turno, que sern los ttulos de las columnas del objeto JTable.
Luego, con el mtodo setColumnIdentifiers() se define las columnas con sus
respectivos ttulos en la variable dtm (modelo del JTable llamado Tabla). Finalmente, se
vincula el modelo, representado en la variable dtm, al objeto JTable llamado Tabla.

Si en estos momentos decidimos ejecutar nuestra aplicacin, quedara nuestro formulario


as:

Ing. Oscar Ascn Valdivia

69

Observamos

que el objeto
definas en

JTable muestra las columnas


la programacin hecha en el mtodo

constructor.
Procedamos con la programacin del botn de comando Agregar (slo escribe
lo que se seala la llave de color rojo).

Declaramos y creamos una variable de memoria datos de tipo String y de


Ing. Oscar Ascn Valdivia

70

tamao
6. Luego, declaramos las variables de memoria n1, n2, n3 y total de tipo entero,
la variable promedio de tipo double y una variable de memoria verifica
de tipo booleano. Las variables de memoria n1, n2 y n3 reciben los valores
ingresado en los cuadros de textos txtn1, txtn2 y txtn3 respectivamente. Con la
variable de memoria verifica se pretende evaluar si se lleg a escribir en los
cuadros de textos y se haya seleccionado un turno. Con la sentencia IF
evaluamos la variable verifica y con el operador ! hacemos negacin, es decir, si
la variable verifica es falso entonces con ! se convierte en verdadero. Si la
variable verifica es falso significa que se ingres los datos en los cuadros
de textos y se seleccion el turno, entonces procedemos a calcular el
promedio teniendo presente que las variables n1,n2, n3 siendo enteras deben ser
tratadas como reales (double). Posteriormente, hacemos uso del arreglo datos
asignando los datos ingresados y el turno seleccionado en cada uno de los
elementos. Con el mtodo addRow() logramos crear una fila con los valores
contenidos con el vector o arreglo datos. Luego, limpiamos los cuadros de
textos y hacemos que el objeto JComboBox quede en
<Seleccionar> al dar el valor cero al mtodo setSelectedIndex(). Si la variable
verifica es verdadero significa que falta ingresar algn dato o seleccionar el
turno. Finalmente, se muestra la cantidad de filas agregadas en el cuadro
de texto txtTotal y haciendo uso del mtodo setRowCount() perteneciente a
dtm.

Procedamos con la programacin del botn de comando Eliminar.

Declaramos las variables fila y total de tipo entero. La variable fila se le asigna
el valor de la posicin de la fila seleccionada en el objeto Jtable llamado Tabla.
Con la sentencia IF se evala a la variable fila si es mayor o igual a cero
procedemos a remover o borrar la fila previamente seleccionad, 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 mtodo setRowCount() perteneciente a dtm.

Procedemos finalmente a ejecutar el formulario.

Ing. Oscar Ascn Valdivia

71

TAREA
1. Usando el objeto Jtable disea el siguiente formulario:

Se desea ingresar el ttulo de la pelcula, seleccionar la categora que puede


ser Drama, Comedia, Accn, Suspenso, etc. y el ingreso de la duracin. Se
debe definir solamente tres columnas en el objeto Jtable y hazlo a partir de
un modelo creado a partir de la clase DefaultTableModel. Al momento de
agregar se debe generar una fila en el Jtable y visualizar el total de pelculas
observadas en el Jtable, de igual manera debe suceder cuando se proceda a
eliminar con el otro botn de comando. La aplicacin adems, debe permitir
seleccionar una categora y mostrar la cantidad de pelculas de dicha
categora.

Ing. Oscar Ascn Valdivia

72

2. Usando el objeto Jtable disea el siguiente formulario:

Se desea ingresar la descripcin del artefacto, seleccionar la marca que puede ser SONY,
PANASONIC, SAMSUMG, LG, etc., seleccionar el tipo de artefacto que puede ser AUDIO,
VIDEO y LINEA BLANCA y el ingreso del costo del artefacto. El objeto JTable se debe
definir 5 columnas referido a los datos antes mencionados y la quinta colmuna debe
titularse PRECIO donde se mostrar el costo del artefacto incrementado en 19% (IGV).
Al momento de usar el botn de comado Agregar se genera una fila en el Objeto JTable y
se mostrar la descripcin del artefacto de mayor costo (cuando haya 2 o mas artefactos
expresados en el JTable) y el total de artefactos visualizados. Al usar usar el botn de
comando eliminar, aparte de eliminar la fila seleccionada en el Objeto JTable, se debe
buscar la descripcin del artefacto de mayor costo.

73

OBJETOS MENUS JMENUBAR YJMENUITEM

SwingMenus
Aqu podemos ver el rbol de herencia de las clases relacionadas con los mens:

Como se ve en la figura, los tems de mens (incluidos los propios mens) son simples
botones. Podramos preguntarnos como un men, si es slo un botn, muestra sus tems.
La respuesta es que cuando se activa un men, automticamente trae un men
desplegable que muestra sus tems.
Crear y congifurar Barras de Men
Mtodos:

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

74

Crear y rellenar Mens


Mtodos:

Jmenu(): Crea un Men a partir de una opcin 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 posicin


especificada.
Remove():Elimina el tem o tems especificados del men. Si el argumento es un
esntero, especifica la posicin del tem a eliminar.

AdicindelMen
Ubicar el cursor en la etiqueta [JFrame], hacer clic en el botn derecho del ratn. Se
desplegar el siguiente men flotante:

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

75

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
botn derecho del mouse y en el men flotante desplegado seleccionamos Change
Variable Name. El aspecto del panel Inspector (Navegador) debe ser ahora el siguiente:

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

76

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


botn 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 grfica adopta la siguiente forma:

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


Inpector sobre jMenu_archivos. Hacer click botn derecho del mouse. En el men
flotante desplegado seleccionemos Add > JMenuItem.

77

El panel inspector (navegador) toma la siguiente forma:

Cambiemos el nombre de jMenuItem1 por jMenuItem_abrir.

78

Si procedemos a compilar y ejecutar la aplicacin, 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 aplicacin y dando click sobre el
men Archivos, se observar lo siguiente:

79

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 aplicacin. El formulario se muestra de la siguiente manera:

El panel lnspector debe tener ahora el siguiente aspecto:

Vamos a adicionar ms mens a la barra de mens. En el rbol de Inspector ubicamos el


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

80

El aspecto del diseo del formulario queda as:

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

81

Y que el panel Inspector tenga el siguiente aspecto:

Aplicacinadicional
Vamos a construir una aplicacin que permita ejecutar todas las aplicaciones propuestas
en la Tarea 2 de la sesin Uso de los objetos JLabel, JtextField y JButton. Dicha tarea
contiene la formulacin de cuatro aplicaciones. Por lo tanto debemos construir un men
cuya pcin en la barra de men sea Tarea 2 y sus tems deben ser Venta de camisas
para la primera aplicacin, Venta de computadora para la segunda aplicacin,
Conversiones para la tercera aplicacin y Clculo para la cuarta aplicacin. Una vez
diseado el men debemos proceder a programar para que sean invocados o ejecutados
desde la opcin (tem) del men.

82

Solucin:
1. Creamos un proyecto denominado ObjetosMenus. Luego, seleccionamos el
paquete objetosmenus y dando click botn derecho del mouse en la opcin New
(Nuevo) seleccionamos Formulario Jframe.

Indicamos como nombre del formulario frmMenu y luego damos click en Terminar
o Finish.
2. Estando en el entorno de desarrollo de NetBeans, en el panel de Inspector
seleccionamos JFrame y damos click botn derecho del mouse seleccionamos
Agregar desde paleta, luego Swing y posteriormente JmenuBar.

83

3. Se crear una barra de Men con una primera opcin del tipo Jmenu. Procedemos a
renombrarlo con JMenuTarea2 y cambiarle el texto como Tarea 2 y
posteriormente creamos un JmenuItem.

4. Debemos crear 4 JmenuItem dentro de jMenuTarea2. Segn el enunciado del


ejercicio son 4 aplicaciones propuestas en la Tarea 2. Procedemos a colocar los
textos a cada opcin en la propiedad Text y renombramos a cada objeto JmeniItem.
En el panel Inspector ubicado al lado izquierdo del diseo del formulario debe
quedar de la siguiente manera:

84

5. Si procedemos a ejecutar el formulario frmMenu debe tener la siguiente apariencia:

6. Volviendo al entorno debemos crear 4 objetos del tipo Jframe, uno para cada
opcin o aplicacin de la Tarea 2.

7. Una vez programado en cada formulario las aplicaciones propuestas en la Tarea 2,


debemos invocar o ejecutar al momento de seleccionar la opcin dentro del men.

85

Para ello es necesario agregar programacin en frmMenu. Por ejemplo si


queremos ejecutar el formulario referido a Venta de Camisas ciuyo formulario se
denomina frmCamisas, tendramos que seleccionar el objeto JMenuItem
correspondiente para indicar el evento a programar.

8. A continuacin, debemos colocar la siguiente lnea de programacin:

Instanciamos con new un objeto del tipo frmCamisas() y procedemos a mostrarlo


con el mtodo setVisible(true).
9. Debemos tener claro que un formulario cuando es invovado desde un men al
momento de ser cerrado a travs de un botn de comando que puede llamarse
Cerrar o Salir ya no deberamos usar el mtodo dispose(), sino ms bien hide().
Este mtodo hide() solo oculta el formulario actual y no cierra al formulario que
contiene el men. Adems es necesario establecer los valores de los mtodos
setSize() y setLocation() del JFrame para hacer que la ejecucin de los
formularios al momento de ser visualizados sea la ms adecuada.

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

86

OBJETOS MENUS JRADIOBUTTONMENUITEM,


JSEPARATOR y JMENU

Menusdesplegables
Una barra de men contiene uno o ms mens, y tiene una posicin 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 accin del ratn
especfica de la plataforma, como pulsar el botn derecho del ratn sobre un componente.
Entonces el men desplegable aparece bajo el cursor.
Crear y congifurar Barras de Men
Mtodos:

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 Mens


Mtodos:

Jmenu(): Crea un Men a partir de una opcin 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 posicin


especificada.
Remove():Elimina el tem o tems especificados del men. Si el argumento es un
esntero, especifica la posicin del tem a eliminar.
AddSeparator(): Aade un separador al final del men desplegable.

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

87

Implementar Items de Men


Mtodos:

JMenuItem(): Crea un tem en un men normal.

JCheckBoxMenuItem: Crea un tem de men que se parece y acta como un


checkbox.
JRadioButtonMenuItem: Crea un tem de men que se parece y acta como un
radio buttom. Se puede hacer uso de un cono.
setEnabled(): Si el argumento es true, activa el tem de men, si es false lo
desactiva.

UsodelaclaseRadioButton
Los Botones de Radio son grupos de botones en los que, por convencin, slo uno de
ellos puede estar seleccionado. Swing soporta botones de radio con las clases
JRadioButton y ButtonGroup. Para poner un botn de radio en un men, se utiliza la
clase JRadioButtonMenuItem. Los botones de radio tienen un aspecto similar a los
checkboxes, pero, por convencin, los checkboxes no tienen lmites sobre cuantos tems
pueden estar seleccionados a la vez. Como JRadioButton desciende de
AbstractButton, los botones de radio Swing tienen todas las caractersitcas de los
botones normales.
Aqu podemos ver una imagen de una aplicacin que utiliza cinco botones de radio para
elegir qu tipo de mascota mostrar:
UsodelaclaseCheckBox
La versin Swing soporta botones checkbox con la clase JCheckBox, Swing tambin
soporta checkboxes en mens, utilizando la clase JCheckBoxMenuItem. Como
JCheckBox y JCheckBoxMenuItem descienden de AbstractButton, los checkboxes de
Swing tienen todas las caractersticas de un botn normal
Adicionaritemsdentrodelostems
En la sesin anterior (Tema 10), estuvimos desarrollando el diseo de un men que qued
su panel de inspector de la siguiente manera:

Ahora vamos a construir un tercer men algo ms complejo. La aplicacin una vez
Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

88

terminado deber tener la siguientes formas:

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

89

Y el panel Inspector debe adoptar la siguiente forma:

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

90

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

91

Para lograr esto es necesario adicionar dentro de los JMenu ms JMenus. Slo los
ltimos para adicionar en cada rama del rbol del panel Inspector sern los JMenuItem.
Repetir el paso Anterior para que la aplicacin una vez ejecutada adopte la siguiente
forma:

Y el panel Inspector se encuentre en el siguiente estado:

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

92

Aplicacin1
Vamos a construir una aplicacin que permita disear una barra de menu, siendo la
opcin principal (construdo a partir de un objeto JMenu) llamada Objetos de Control. A
partir de sta opcin creas items usando JMenuItems para las opciones: Tarea 2,
Tarea3, Tarea4, Tarea 5 y Tarea 6. Para la opcin Tarea 2 defines cuatro tems que
indiquen: Ventas de Camisas, Ventas de Computadoras, Conversiones y Clculo.
La tarea 2 contiene la formulacin de cuatro aplicaciones. Una vez diseado el men
debemos proceder a programar para que sean invocados o ejecutados desde la opcin
(tem) del men.
Solucin:
1. Creamos un proyecto denominado MenusObjetos. Luego, seleccionamos el
paquete menusobjetos y dando click botn derecho del mouse en la opcin New
(Nuevo) seleccionamos Formulario Jframe.

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

93

Indicamos como nombre del formulario frmMenu y luego damos click en Terminar
o Finish.

2. Estando en el entorno de desarrollo de NetBeans, en el panel de Inspector


seleccionamos JFrame y damos click botn derecho del mouse seleccionamos
Agregar desde paleta, luego Swing y posteriormente JmenuBar.

3. Se crear una barra de Men con una primera opcin del tipo Jmenu. Procedemos a
renombrarlo con JMenuObjetosControl y cambiarle el texto como Objetos de
Control y posteriormente creamos un JmenuItem.

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

94

4. Debemos crear 5 del tipo JMenu dentro de jMenuObjetosControl. Segn el


enunciado del ejercicio son 5 opciones: Tarea 2, Tarea 3, Tarea 4, Tarea 5 y
Tarea 6. Procedemos a colocar los textos a cada opcin en la propiedad Text y
renombramos a cada objeto JMenu. En el panel Inspector ubicado al lado
izquierdo del diseo del formulario debe quedar de la siguiente manera:

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

95

5. Si procedemos a ejecutar el formulario frmMenu debe tener la siguiente apariencia:

6. Volviendo al entorno de NetBeans debemos crear los 4 items del tipo JMenuItem
dentro de la opcin JMenuTarea2. En el panel Inspector debe quedar de la
siguiente manera:

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

96

7. Si procedemos nuevamente a ejecutar el formulario frmMenu debe tener la


siguiente apariencia:

8. Volviendo nuevamente al entorno de NetBeans debemos crear los 4 item objetos


del tipo Jframe, uno para cada opcin o aplicacin de la opcin de JMenuTarea 2.

9. Una vez programado en cada formulario las aplicaciones propuestas en la Tarea 2,


debemos invocar o ejecutar al momento de seleccionar la opcin dentro del men.
Para ello es necesario agregar programacin en frmMenu. Por ejemplo si
queremos ejecutar el formulario referido a Venta de Camisas cuyo formulario se
denomina frmCamisas, tendramos que seleccionar el objeto JMenuItem
correspondiente para indicar el evento a programar.

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

97

10. A continuacin, debemos colocar la siguiente lnea de programacin:

Instanciamos con new un objeto del tipo frmCamisas() y procedemos a mostrarlo


con el mtodo setVisible(true).
11. Debemos tener presente que un formulario cuando es invovado desde un men al
momento de ser cerrado a travs de un botn de comando que puede llamarse
Cerrar o Salir ya no deberamos usar el mtodo dispose(), sino ms bien hide().
Este mtodo hide() solo oculta el formulario actual y no cierra al formulario que
contiene el men. Adems es necesario establecer los valores de los mtodos
setSize() y setLocation() del JFrame para hacer que la ejecucin de los
formularios al momento de ser visualizados sea la ms adecuada.

TAREA MENUS
1. Redisea el siguiente men utlizando el JSeparator.
Mantenimiento Docente
Alumno Apoderado
------------------------ Semestre
Acadmico Nivel de Estudios
Grado
------------------------ Curso
Procesos
Matricula
Renovacin de Matrcula
--------------------------- Nota
Libreta de Notas
2. Contina la aplicacin desarrollada en La clase de Menus, haciendo que las aplicaciones
propuestas en las tareas anteriores

sean las opciones o tems de las opciones del

men, siendo ejecutadas desde el formulario que contiene al men. En la barra de men
crear una opcin que exprese Objetos contenedores. A partir de sta opcin
creas items usando JMenuItems para las tareas de Listas. Para cada de estas tareas
defines las opciones o tems segn las aplicaciones propuestas en dichas tareas.
Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

98

El que puede imaginar puede Programar

Todas las personas, empresas dependen


de nosotros los conocedores de tics
(computacin e informtica)

Los tcnicos no nacen el iestp carlos


Salazar romero los hace y en
computacin e informtica mucho ms.

Ing. Oscar Ascn Valdivia / Enrique Rivas Uriol

99

You might also like