Anda di halaman 1dari 149

Herramientas de Desarrolllo de Software

INSTITUTO DE EXCELENCIA

“CARLOS SALAZAR ROMERO”

PROGRAMA DE ESTUDIO DE
COMPUTACIÓN E INFORMÁTICA

MODULO PROFESIONAL

DESARROLLO DE
SOFTWARE Y
GESTION DE BASE DE
DATOS

UNIDAD DIDACTICA
HERRAMIENTA DE DESARROLLO DE SOFTWARE
Docentes: Ing. Ysmael Rivas Uriol
Ing. Jose Plasencia Latour

Ing. Ysmael Rivas Uriol Paá gina 0


Herramientas de Desarrolllo de Software

Nuevo Chimbote
2019

Entorno de Power Builder

Características Generales:

Power Builder es un desarrollador de aplicaciones, cuyas características básicas


son:

 Soporta una gran variedad de sistema de gestión de bases de datos, tales


como: SqlServer, Access, Oracle,Informix, etc. Tiene la capacidad de acceder a
muchas bases de datos y mostrar la información en una sola ventana
(formulario).
 Tiene un objeto llamado Datawindow que realiza la interfase con la base de
datos permitiendo hacer aplicaciones en un ambiente cliente servidor.

 Posee la capacidad de utilizar sentencias SQL combinadas con sentencias


propias de Power Builder.

Ing. Ysmael Rivas Uriol Paá gina 1


Herramientas de Desarrolllo de Software

 Puede trabajar en múltiples plataformas, ya que soporta diferentes sistemas


operativos y posee componentes nativos para establecer conexión con base de
datos más comerciales.
 Permite diseñar aplicaciones para Windows como cualquier otro lenguaje de
programación visual.
 Para el diseño de una aplicación se utiliza painters (pintores) que son entornos
donde se construye los objetos.

Una aplicación en Power Builder

El lenguaje de programación Power Builder para dar inicio a una aplicación debes
generar tres archivos:
a) Uno es el área de trabajo (workspace) necesario para tener el espacio de
memoria para el diseño y desarrollo de la aplicación.
b) El segundo archivo es el target para el manejo de la librería.
c) El tercer archivo es la librería o biblioteca que contiene los objetos que
conforman una aplicación.

Se entiende como objetos que conforman una aplicación a todo aquello que te
permitirá desarrollar o construir una aplicación.

Se tiene la siguiente figura:

En la figura observas que una librería puede contener varios tipos de objetos como:
a) Objeto aplicación: permite dar inicio a la ejecución de una aplicación.
b) El objeto menú: permite diseñar un menú con su barra de herramientas
c) El objeto ventana: permite diseñar el formulario o interfaz de la aplicación.
d) El objeto función: necesario para hacer programación modular.
e) El objeto estructura: permite el diseño de consulta de datos.
f) El objeto datawindow: para aplicaciones con base de datos.

Ing. Ysmael Rivas Uriol Paá gina 2


Herramientas de Desarrolllo de Software

g) El objeto usuario: para crear nuevos objetos.

Cada tipo de objeto lo irás aprendiendo en el desarrollo del curso.

Una aplicación de Power Builder no solo está hecho de objetos, también de eventos
y scripts.

Objeto
• Un objeto es una forma de comunicación con el usuario (por ejemplo, una
ventana o un menu).
Eventos
• Cuando un usuario selecciona un objeto o ingresa o modifica en un objeto,
ocurre un evento. Los eventos pueden sucederle a muchos objetos
(aplicaciones, ventanas, controles , etc)
• Un evento ocurre cuando el usuario realiza un acción con el mouse o el
teclado. Los eventos pueden también ser causados por sentencias Power
Script y por el sistema mismo.
• Los eventos comunes incluyen:
• Clicked
• DoubleClicked
• Modified
• Open
• Close
• GetFocus
• LoseFocus
• SelectionChanged

• Los eventos pueden causar que scripts sean ejecutados

Scripts

Ing. Ysmael Rivas Uriol Paá gina 3


Herramientas de Desarrolllo de Software

• Un script define el proceso que se va a realizar. Cuando un evento ocurre,


Power Builder ejecuta el script para ese evento y objeto o control. Un script
es escrito en lenguaje PowerScript.
• Por ejemplo, un evento Clicked ocurre cuando el usuaro hace click con el
mouse y e puntero está sobre un Botón de Comando. Ud. puede codificar un
script para el Botón de Comando y responder a este evento Clicked.

PRACTICA:

Supóngase que desea hacer una aplicación para un Sistema de Transportes,


entonces deberías definir los archivos workspace, target y library para dar inicio a
una aplicación.

Solución:

Usando el entorno de Power Builder selecciona el botón new de la barra de


herramientas.

Seleccionar New

Te muestra la siguiente ventana:

Ing. Ysmael Rivas Uriol Paá gina 4


Herramientas de Desarrolllo de Software

dar click
Estando en la ficha Workspace dar click en el botón OK.

Te muestra una ventana de diálogo para dar el nombre del workspace, pero te
recomiendo que crees una carpeta TRANSPORTE en la unidad C o unidad D.

Luego establece con nombre del workspace transporte dentro de la carpeta


TRANSPORTE.

Ing. Ysmael Rivas Uriol Paá gina 5


Herramientas de Desarrolllo de Software

Posteriormente dar clic en el botón Guardar.

El entorno de Power Builder se muestra en el panel de la izquierda la presencia del


workspace transporte.

Ahora procedemos a crear el archivo target, el archivo library y el objeto aplicación

Nuevamente selecciona el botón New de la barra de herramientas del entorno de


Power Builder

Selecciona New

Te muestra la ventana siguiente y selecciona la ficha Target

Ing. Ysmael Rivas Uriol Paá gina 6


Herramientas de Desarrolllo de Software

En esta ficha Target debe estar seleccionado e ícono Application y luego da clic en
el botón OK.

El cursor se encuentra enfocado el cuadro de texto Application Name. Aquí pon


como nombre del objeto aplicación transporte.
Todo trabajo realizado en Power Builder se debe iniciar teniendo un objeto
aplicación dentro de la librería. Este objeto permitirá dar inicio a la ejecución de una
aplicación en Power Builder.
Después de escribir transporte en el cuadro de texto antes mencionado presionas la
tecla <tab>. Quedando la ventana de la siguiente manera:

Ing. Ysmael Rivas Uriol Paá gina 7


Herramientas de Desarrolllo de Software

Por tanto el objeto aplicación transporte quedará dentro de la librería


transporte.pbl que se encuentra en la ruta D:\TRANSPORTE\ y este archivo
transporte.pbl (archivo library) formará parte del archivo transporte.pbt (archivo
target). Este a su vez quedará dentro del archivo transporte.pbw (archivo
workspace).
Ahora da clic en el botón de comando Finish y observarás en el panel de la
izquierda del entorno de Power Builder: (después de desplegar el signo +).

Aquí termina nuestra primera sesión, espero que hayas aprendido todo lo indicado.

Ing. Ysmael Rivas Uriol Paá gina 8


Herramientas de Desarrolllo de Software

AUTOEVALUACION
1. Se quiere hacer un sistema de gestión Hospitalaria, por tanto crea los archivos
de workspace, target y library, utilizando como nombre hospital para los tres
archivos y para el objeto aplicación.

2. Contesta con (V)erdadero o con (F)also los siguientes enunciados:

a) El Lenguaje de Programación Power Builder permite utilizar como gestores


de base de datos a Access. ( )
b) El Lenguaje de Programación Power Builder no permite construir
aplicaciones para Windows. ( )
c) Para el desarrollo de una aplicación en Power Builder se debe crear como
primer objeto al objeto ventana para dar inicio a una aplicación. ( )
d) El objeto datawindow se utiliza para desarrollar aplicaciones con base de
datos. ( )
e) La forma de comunicación de un usuario con una aplicación se denomina
objeto. ( )

Ing. Ysmael Rivas Uriol Paá gina 9


Herramientas de Desarrolllo de Software

OBJETO MENU
Utilización del pintor de Menú

Un pintor es un entorno para diseñar un objeto, en este caso será el objeto menú.
Aquí podrás construir un menú con su barra de herramientas y además podrás
programar para cada opción de menú.

Continúa con el ejemplo de transporte de la sesión anterior. Se tenía los archivos:


transporte.pbw, transporte.pbt y transporte.pbl con el objeto aplicación transporte.

Ahora abrirás un pintor de Menú, dando clic en la opción New de la barra de


herramientas.

Selecciona New

Te ubicas en la ficha PB Object donde debes seleccionar el ícono de Menu.

Luego dar clic en el botón de comando OK.

Ing. Ysmael Rivas Uriol Paá gina 10


Herramientas de Desarrolllo de Software

A continuación observas el pintor del menú.

Tree Menu View WYSIWYG Menu View Script View Properties View

Creación de un Objeto Menú

En la vista WYSIWYG Menu View haces clic con el botón derecho del Mouse, lo cual ocasiona
que muestre un menú flotante.

Ing. Ysmael Rivas Uriol Paá gina 11


Herramientas de Desarrolllo de Software

Usa esta opción cuando inicies el diseño del menú

Una vez seleccionado la opción Insert Submenú Item se muestra un cuadro de


texto con el cursor listo para ingresar la primera opción del menú. Ingresa
&Mantenimiento donde el carácter ‘&’ hará que la letra que se encuentra a su
derecha se subraye. Una vez ingresado &mantenimiento y dando <Enter> quedará
el pintor de la siguiente manera:

Selecciona Mantenimiento y
luego dar clic botón derecho
del mouse

Después de dar clic en el botón derecho del mouse se muestra el menú flotante con
más opciones habilitadas.

Ing. Ysmael Rivas Uriol Paá gina 12


Herramientas de Desarrolllo de Software

Menú flotante

Si pretendes colocar una opción al lado derecho de la opción Mantenimiento tienes


que usar la opción Insert Menu Item At End. Esta opción se usa cuando uno
quiere agregar al final un Item (opción) desde la opción donde se invocó el menú
flotante. En este caso se agregará al lado derecho de la opción de Mantenimiento.
Al usar Insert Menu Item At End se muestra nuevamente un cuadro de texto
dónde se colocará la expresión &Viajes, quedando el pintor de menú así:

Ing. Ysmael Rivas Uriol Paá gina 13


Herramientas de Desarrolllo de Software

Ahora quieres agregar una opción que pertenezca a la opción Mantenimiento, para
ello seleccionas Mantenimiento, haces clic botón derecho y se muestra el menú
flotante, donde seleccionaras la opción Insert Submenu Item.

Menú flotante

Dar clic aquí

A continuación se muestra nuevamente el cuadro de texto.

Aquí escribes &Ciudad


y luego das <Enter>

Quedando el diseño del menú

Ing. Ysmael Rivas Uriol Paá gina 14


Herramientas de Desarrolllo de Software

Ahora si invocas el menú flotante desde la opción Ciudad entonces para añadir
una opción más perteneciente a la opción Mantenimiento, entonces usa la opción
Insert Menu Item At End. Analiza bien esto, se está invocando ésta opción desde
Ciudad por lo que creará el cuadro de texto de la nueva opción debajo de la opción
Ciudad.

Aquí escribes &Ruta,


luego das <Enter>

Una vez que tenemos las opciones Ciudad y Ruta en Mantenimiento, podemos
invocar al menú flotante desde la opción Ciudad o Ruta, seleccionando la opción
Insert Menu Item At End. Recuerda esta opción inserta un item (opción) al final
(at End) del item desde donde se invocó el menú flotante.

Ing. Ysmael Rivas Uriol Paá gina 15


Herramientas de Desarrolllo de Software

Aquí escribes el signo


-y luego das <Enter>
para que dibuje la línea
de separación

Quedando el diseño del menú:

Termina el diseño del menú con las demás opciones:

Mantenimiento Viajes
Ciudad CTRL+C Programación CTRL+O
Ruta CTRL+R Reservación
--------- Postergación
Servicio CTRL+S -----------------
Tarifa CTRL+T Venta de Pasajes CTRL+V
---------
Personal

Para las teclas calientes como es el caso por ejemplo de Ciudad que es CTRL+C se
procede a indicar en la vista de propiedades en la ficha General, lo siguiente (debes
haber seleccionado antes la opción Ciudad):

Ing. Ysmael Rivas Uriol Paá gina 16


Herramientas de Desarrolllo de Software

Selecciona la letra C Selecciona Shortcut ctrl.

El pintor del Menú queda:

Diseñando una barra de herramientas en el Objeto Menú

Ing. Ysmael Rivas Uriol Paá gina 17


Herramientas de Desarrolllo de Software

Ahora te pondrás a crear o diseñar una barra de herramientas, para ello selecciona
la opción Ciudad y selecciona la ficha ToolBar de la vista de propiedades.

Texto para describir la opción en la barra de herramientas Aquí se selecciona la figura en la barra

Pon Ciudad en ToolBarItemText y en ToolbarItemName selecciona la figura


Custom072.

Ahora por ti mismo coloca figura a las opciones de Ruta, Servicio, Tarifa,
Programación y Venta de Pasajes. Por lo tanto debe quedar 6 figuras en la barra de
herramientas. Luego graba el objeto como m_principal.

Ing. Ysmael Rivas Uriol Paá gina 18


Herramientas de Desarrolllo de Software

Aplicando herencia con el objeto Menú

La herencia consiste en hacer una copia a partir de un objeto, es decir, se obtiene


el mismo diseño y programación del objeto. Se puede aplicar herencia con los
objetos: menú, ventana y objetos de usuarios.

Continuando con el ejemplo de transporte tenemos en la librería transporte.pbl el


objeto ya creado m_principal. A partir de este objeto vas a aplicar la herencia.
Debes tener en cuenta que para heredar necesitas tener el objeto cerrado, es decir,
su pintor debe estar cerrado.

Selecciona el segundo botón de la barra de herramientas, la opción Inherit.

Selecciona Inherit

Ing. Ysmael Rivas Uriol Paá gina 19


Herramientas de Desarrolllo de Software

A continuación se muestra la siguiente ventana:

Objeto
listwiew

En esta ventana observas en Objects of Type los tipos de objetos que se pueden
usar herencia (Menus, User Objects y Windows)
En object Name se debe mostrar el nombre del objeto del cual quieres heredar.
Esto lo logras seleccionando el objeto en el objeto listwiew. Para el ejemplo de
transporte seleccionas el objeto m_principal.
Luego das clic en el botón de comando OK y se muestra el pintor del objeto menú
heredado de m_principal.

Ing. Ysmael Rivas Uriol Paá gina 20


Herramientas de Desarrolllo de Software

Barra de título
Observando la barra de título dice: Untitled (porque no tiene nombre todavía el
objeto menú), la expresión transporte porque pertenece a la librería transporte y la
expresión inherited from m_principal significa heredado del menú m_principal.

La importancia de usar herencia es que podemos hacer modificaciones al objeto


hijo (objeto heredado) para que luego constituya un nuevo objeto. Por ejemplo, en
este objeto vas a agregar una opción más al lado derecho de Viajes denominado
Encomiendas. Luego agregas como opciones de Encomiendas, la opción Recepción
y la opción Entrega, quedando el diseño del pintor:

Ing. Ysmael Rivas Uriol Paá gina 21


Herramientas de Desarrolllo de Software

Ahora procede a grabarlo como m_auxiliar.

Ejecutando un objeto Menú

El objeto menú debe ser vinculado a un objeto ventana (objeto window) para ser
visto en tiempo de ejecución. Para ello abre un pintor de ventana, para lo cual
selecciona la opción New de la barra de herramientas y en la ficha PB Object eliges
la opción window.

Se muestra a continuación el pintor del objeto window.

Ing. Ysmael Rivas Uriol Paá gina 22


Herramientas de Desarrolllo de Software

Aquí colocar el nombre del objeto menú Tipo de Ventana

En la vista de propiedades en la ficha General, la propiedad MenuName colocas el


nombre o seleccionas el nombre del objeto menú, por ejemplo m_auxiliar. Al
momento de ejecutar la ventana sólo podrás observar el menú sin su barra de
herramientas. Si tu intención es ver también la barra de herramientas tienes que
cambiar el tipo de ventana de main! a mdi! en WindowType, propiedad que se
encuentra también en la ficha General.
En la propiedad Title coloca: Sistema de Transporte y procede a grabar el objeto,
dando clic en el botón de Save (Grabar), con el nombre w_auxiliar. Las ventanas
su nombre se inicia con la letra ‘w’.

Ahora puedes cerrar el pintor de ventana y abrir el pintor de aplicación.

Ing. Ysmael Rivas Uriol Paá gina 23


Herramientas de Desarrolllo de Software

Aquí la vista de script se muestra transporte (nombre del objeto aplicación) y open
(nombre del evento). A continuación coloca la línea de programación:

Open(w_auxiliar)

Open(w_auxiliar) significa abrir o ejecutar la ventana w_auxiliar. Aquí open es una


función. Esto sucede cuando se inicia la ejecución al momento de dar clic en Run
(también se puede usar las teclas <CTRL>+<R>)

Dar clic para ejecutar

A continuación se visualiza la ventana w_auxiliar ejecutado:

Ing. Ysmael Rivas Uriol Paá gina 24


Herramientas de Desarrolllo de Software

AUTOEVALUACION
1. Diseña un objeto menú referente a un colegio, usando las siguientes
opciones:

2. Luego construye una barra de herramientas colocando el texto en la


propiedad ToolBarItemText y la figura en ToolBarItemName a las opciones:
Docente, Alumno, Apoderado, Matrícula, Renovación de Matrícula, Nota y
Libreta de Notas. Luego lo grabas como m_menu_principal.
3. Aplicando herencia creas un objeto menú denominado m_secretaria. En este
objeto se adiciona una opción (a la derecha de Procesos) llamada Reportes.
Esta opción Reportes tiene como opciones: Ficha de Matrícula, Constancia de
Notas. El menú m_secretaria no podrá tener la opción de Semestre
Académico, Nivel de Estudio y Grado, para lo cual puedes inhabilitarlo con la
propiedad enabled o quitar su visibilidad con la propiedad visible.
4. Luego ejecuta una ventana (puedes llamarlo w_secretaria) para que se
muestre el menú m_secretaria

Ing. Ysmael Rivas Uriol Paá gina 25


Herramientas de Desarrolllo de Software

OBJETO VENTANA

Tipos de Ventanas y su pintor

El objeto ventana permite diseñar el interfaz que el usuario utiliza para interactuar
con el sistema. Un objeto ventana tiene propiedades, eventos y objetos de
controles.

Main
Suelen estar solitarias, se las emplea mucho. Son totalmente independientes
Popup (ventanas emergentes)
Son secundarias, y se abren desde otra, cuando se cierra o minimiza una ventana
principal, la ventana emergente también se cierra o minimiza
Child
También se abren desde otros, no se pueden mostrar nunca fuera de la ventana
principal, no están nunca activas (la ventan principal retiene la atención). No
pueden tener menús
Response
Son del tipo ventana emergente, se caracterizan por ser modales, es decir, no se
puede activar ninguna otra ventana en la aplicación hasta que se cierra la ventana
respuesta
MDI
Son aquellas que contienen al menú y la barra de herramientas. En ellas se abre las
ventanas de tipo child.

Utilización del pintor de Ventana

Un pintor es un entorno para diseñar un objeto, en este caso será el objeto


ventana. Aquí podrás construir una ventana con sus objetos de controles básicos.

Ahora abrirás un pintor de Ventana, dando clic en la opción New de la barra de


herramientas.

Selecciona New

Te ubicas en la ficha PB Object donde debes seleccionar el ícono de Ventana.

Ing. Ysmael Rivas Uriol Paá gina 26


Herramientas de Desarrolllo de Software

Selecciona Window

Luego dar clic en el botón de comando OK.

A continuación observas el pintor de ventana.

Ing. Ysmael Rivas Uriol Paá gina 27


Herramientas de Desarrolllo de Software

Layout View Script View Properties View Control List View

Para diseñar un objeto ventana es necesario al menos tener abiertas las vistas:
Layout View, Script View y Properties View.

Ing. Ysmael Rivas Uriol Paá gina 28


Herramientas de Desarrolllo de Software

Objetos de Controles Básicos

Permiten diseñar un objeto ventana para introducir, seleccionar o mostrar datos. A


continuación se muestra la caja de herramientas (constituido por los objetos de
control básicos)

CommandButton

RadioButton PictureButton

CheckBox StaticText

Line Picture

GroupBox SingleLineEdit

EditMask RichTextEdit

DropDownListBox ListBox

PictureListBox TreeView

Tab

ListView

DataWindow Graph

Ole UserObject

StaticText
Se utiliza para mostrar títulos y mensajes.
SingleLineEdit
Es una caja que el usuario puede utilizar para ingresar una línea de texto.
CommandButton
Es utilizado para ejecutar una acción cuando el usuario de un clic sobre él.
CheckBox
Utilizado para afirmar o negar una expresión.
RadioButton
Utilizado para seleccionar una opción
Picture
Muestra un mapa de bits.
GroupBox
Para agrupar un grupo de objetos de control
Tab
Contiene una serie de páginas, donde cada página puede contener controles.
ListBox
Contiene items (datos) para su posterior selección.
DropDownListBox
Combina las características de un ListBox y una caja de edición. El usuario puede
seleccionar un item o ingresar un dato en la caja de texto.

Ing. Ysmael Rivas Uriol Paá gina 29


Herramientas de Desarrolllo de Software

Creación de variables de memoria

Una variable de memoria es un espacio de memoria que tiene nombre y tipo de


dato que permite almacenar un dato o el resultado de un proceso. El nombre de la
variable de memoria debe iniciarse con una letra
Para crearlo hay que declararlos con las instrucciones:
Integer, para declarar una variable de memoria de tipo entero
Double, para declarar una variable de memoria de tipo real
String, para declarar una variable de memoria de tipo cadena.
También se puede usar las instrucciones: Long (tipo de dato entero largo), Date
(tipo de dato fecha), DateTime (tipo de dato Fecha/hora), Dec (tipo de dato
decimal), Boolean (tipo de dato boleano).

Por ejemplo:

Integer numero declara una variable de memoria numero de tipo entero


String nom declara una variable de memoria nom de tipo cadena
Double n1, n2 declara las variables n1 y n2 de tipo numérico real

Sentencia de Asignación

Permite asignar una dato a una variable de memoria o a la propiedad de un objeto


de control. El signo = simboliza la sentencia de asignación.

Ejemplo:

Integer nota declara una variable de memoria nota de tipo entero


String nom declara una variable de memoria nom de tipo cadena
nota=20 asigna (almacena) el dato 20 a la variable nota
nom=”Luis” asigna (almacena) el dato Luis a la variable nom (el uso de
comillas permite identificar un dato de tipo cadena. Omitirlo
haría que Luis sea una variable de memoria)

Propiedades y Eventos

Todo objeto diseñador (como el objeto ventana) o de control (como el StaticText,


SingleLineEdit, CommandButton, etc) tienen propiedades. Una propiedad es una
característica de un objeto. Si consideras a una persona como un objeto, una
propiedad sería talla. La talla de una persona tiene una valor como por ejemplo
1.70 metros, por tanto una propiedad posee un valor.
Un evento es una ocurrencia aplicado a un objeto que ocasiona la ejecución de un
proceso (un script o programación). Por ejemplo el botón de comando Inicio del
entorno del sistema operativo de Window al darle clic ocasiona que aparezca un
menú flotante, por tanto el evento clic ha sido programado para que ejecute un
proceso que active el mencionado menú.

Ing. Ysmael Rivas Uriol Paá gina 30


Herramientas de Desarrolllo de Software

Al dar clic ocasiona …..

Aplicación 1:

Veamos a continuación una aplicación con el objeto ventana y con los objetos de
control básicos: StaticText, SingleLineEdit y CommandButton. Puedes definir un
área de trabajo (workspace) llamado ejercicios, el target llamado ejercicios y la
librería ejercicios.

Se desea construir una aplicación 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 (19% del costo total) y monto a pagar (costo
total mas el igv).

Solución:

Vamos llamando a un pintor de ventana y usas la caja de herramientas para el


diseño de la aplicación.

Ing. Ysmael Rivas Uriol Paá gina 31


Herramientas de Desarrolllo de Software

Caja de
herramientas

Para colocar un objeto de control dentro del objeto ventana debes seleccionar un
objeto de la caja de herramientas como por ejemplo un StaticText y luego debes
dar clic en el lugar que desees dibujarlo.

El diseño del formulario inicialmente debe quedar así:

CommandButton

SingleLineEdit

StaticText

Ing. Ysmael Rivas Uriol Paá gina 32


Herramientas de Desarrolllo de Software

Observamos en el diseño que existen 9 objetos StaticText, 3 objetos SingleLineEdit


y 3 objetos CommandButton.

Veamos de nuevo el diseño:

Los objetos 1,2,3,10,11,12,13,14 y 15 son StaticText


Los objetos 4,5 y 6 son SingleLineEdit
Los objetos 7, 8 y 9 son CommandButton.

Los objetos de control tienen un nombre por defecto, así por ejemplo el objeto
número 1 se llama st_1, el objeto número 4 se llama sle_1, el objeto número 5 se
llama sle_2, el objeto número 7 se llama cb_1, el objeto número 8 se llama cb_2,
etc.

A continuación vamos a usar las propiedades de los objetos de control para ello
usaras Properties View (la vista de propiedades) en la ficha o página General.

Ing. Ysmael Rivas Uriol Paá gina 33


Herramientas de Desarrolllo de Software

Ficha General o Página General Nombre del objeto

Objeto de control Propiedad Valor de la Propiedad


St_1 (none 1) Text Cantidad solicitada:
St_2 (none 2) Text Costo unitario:
St_3 (none 3) Text Tasa de descuento %:
Sle_1 (none 4) Text <vacío>
Sle_2 (none 5) Text <vacío>
Sle_3 (none 6) Text <vacío>
Cb_1 (none 7) Text CALCULAR
Cb_2 (none 8) Text LIMPIAR
Cb_3 (none 9) Text CERRAR
St_4 (none 10) Text Costo Total:
St_5 (none 11) Text <vacío>
St_5 (none 11) Border <seleccionar>
St_6 (none 12) Text IGV:
St_7 (none 13) Text <vacío>
St_7 (none 13) Border <seleccionar>
St_8 (none 14) Text Monto a Pagar:
St_9 (none 15) Text <vacío>
St_9 (none 15) Border <seleccionar>
Sle_1 (none 4) Name Sle_cant
Sle_2 (none 5) Name Sle_cos
Sle_3 (none 6) Name Sle_tasa

Ing. Ysmael Rivas Uriol Paá gina 34


Herramientas de Desarrolllo de Software

Cb_1 (none 7) Name Cb_calcular


Cb_2 (none 8) Name Cb_limpiar
Cb_3 (none 9) Name Cb_cerrar
St_5 (none 11) Name St_costo
St_7 (none 13) Name St_igv
St_9 (none 15) Name St_monto

En el objeto ventana colocar en la propiedad Title: CAMISAS

El diseño de la ventana debe quedar finalmente así:

Ahora procedemos a programar en los eventos de los objetos. Para esto es


necesario hacer uso de la vista de Script (Script View).

Seleccionamos el botón de comando CALCULAR y al dar clic al botón derecho del


mouse se muestra un menú flotante.

Ing. Ysmael Rivas Uriol Paá gina 35


Herramientas de Desarrolllo de Software

Menú
flotante

Del menú flotante seleccionamos Script y se muestra en la vista de Script lo


siguiente:

Ing. Ysmael Rivas Uriol Paá gina 36


Herramientas de Desarrolllo de Software

Vista de
Script

Objeto evento

Colocamos el siguiente script (programa) en el objeto cb_calcular, evento clicked:

integer cant declara una variable cant como entero


double cos,tasa,costo,igv,monto declara las variables cos, tasa, costo, igv y monto
cant=integer(sle_cant.text) asigna el valor que contiene la propiedad text del objeto
sle_cant convertido a entero a la variable cant
cos=double(sle_cos.text)
tasa=double(sle_tasa.text)
costo=cant*cos*(1 – tasa/100) asigna el resultado de una operación a la variable costo
igv=costo*0.19
monto=costo+igv
st_costo.text=string(costo) asigna el contenido de la variable costo convertido a cadena
a la propiedad text del objeto st_costo
st_igv.text=string(igv)
st_monto.text=string(monto)

Conversión de tipo de dato


Cuando la aplicación sea ejecutada el cuadro de texto referido a la cantidad
solicitada se ingresará una cantidad numérica. Este valor es decepcionado por la
propiedad text del objeto sle_cant. Por tanto la propiedad Text contiene el dato

Ing. Ysmael Rivas Uriol Paá gina 37


Herramientas de Desarrolllo de Software

ingresado. Este dato es de tipo cadena (String) y para asignarlo a la variable cant
de tipo entero es necesario usar una conversión de tipo de dato.

En la línea de programación:
Cant=Integer(sle_cant.text)

Se toma el valor de la propiedad Text del objeto de control sle_cant y como es dato
de tipo cadena se usa la función Integer para convertir dicho dato en entero. Toda
función va acompañado de paréntesis. En la función Integer se coloca el dato de
tipo cadena entre los paréntesis y este lo convertirá en un dato numérico.

Así como para declarar una variable usamos los tipos de datos: Integer, Double,
String, Bolean, etc., las mismas expresiones se usan para la conversión de datos
teniendo en cuenta que son funciones.

El pintor de ventana debe quedar así:

Colocamos el siguiente script (programa) en el objeto cb_eliminar, evento clicked:

sle_cant.text="" limpia el contenido del cuadro de texto sle_cant


sle_cos.text=""

Ing. Ysmael Rivas Uriol Paá gina 38


Herramientas de Desarrolllo de Software

sle_tasa.text=""
st_costo.text=""
st_igv.text=""
st_monto.text=""
sle_cant.setfocus() la función setfocus() es para darle el cursor al objeto sle_cant

Para el objeto cb_cerrar escribimos el siguiente script para elevento clicked:

Close(parent) cierra a la ventana actual

También se puede usar close(<nombre de la ventana>)


Sentencias selectivas y repetitivas

Asumiendo que conoces el lenguaje de programación Java haré una comparación


para su comprensión rápida.

Sentencia en Java Sentencia en Power Builder


a) If (x>8) a) if x>8 then
Y=12; y=12
Else else
Y=15; y=15
end if

b) If (m<20) z=8; else z=4; b) if m<20 then z=8 else z=4

c) If (n<10) c) if (n<10)
{ a=5; a=5
b=a+7; b=a+7
c=a+b; c=a+b
} end if

d) If (x>5 && y<10) d) if x>5 AND y<10 then


{ z=12
z=12; a=10
a=10; end if
}

a) Switch(num) a) Choose Case num


{ Case 1
Case 1: s=”Excelente”; break; S=”Excelente”
Case 2: s=”Bueno”; break; Case 2
Case 3: s=”Regular”; break; S=”Bueno”
Case 4: s=”Malo”; break; Case 3
Case 5: s=”Muy Malo”; break; S=”Regular”
Default: Case 4
s=”No hay calificativo”; S=”Malo”
} Case 5
S=”Muy Malo”
Case else
S=”No hay calificativo”
End Choose

a) While(x<6) a) do while x<6

Ing. Ysmael Rivas Uriol Paá gina 39


Herramientas de Desarrolllo de Software

{ c=a+10
C=a+10; x=x+1
X=x+1; loop
}

b) Do b) do
{ a=c+15
a=c+15; b=a+18
b=a+18; c=a+b
c=a+b; loop while b<38
} while (b<38);

c) For (i=1;i<=15;i++) c) for i=1 to 15


{ m=a+5
m=a+5; z=m+20
z=m+20; next
}

Aplicación 2:

Veamos a continuación una aplicación con el objeto ventana y con los objetos de
control básicos: StaticText, SingleLineEdit y CommandButton haciendo uso de las
sentencias selectivas y/o repetitivas.

Se desea construir una aplicación 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.

A continuación vemos el diseño de la ventana.

Sle_costo

Cb_calcular

Cb_borrar

Cb_cerrar

St_desc

St_igv

St_precio

Aquí observas que se usa un cuadro de texto para el ingreso del costo de la
computadora el cual tiene como nombre sle_costo. Los botones de comando se
llaman cb_calcular, cb_borrar y cb_cerrar y los textos estáticos se denominan

Ing. Ysmael Rivas Uriol Paá gina 40


Herramientas de Desarrolllo de Software

st_desc para el descuento, st_igv para el impuesto y st_precio para mostrar el


precio.

Ahora veamos la programación (script) en los botones de comando.

Colocamos el siguiente script (programa) en el objeto cb_calcular, evento clicked:

integer costo
double dcto, igv, precio
costo=integer(sle_costo.text)
if costo<500 then
dcto=costo*0.04 se aplica el descuento cuando el costo es menor a 500 soles
else
if costo<=1200 then se aplica el descuento cuando el costo esta entre 500 y 1200
dcto=costo*0.06
else
dcto=costo*0.08
end if
end if
igv=(costo - dcto) * 0.19 cuando se resta se debe tener un espacio antes y después del signo -
precio=costo - dcto + igv
st_desc.text=string(dcto)
st_igv.text=string(igv)
st_precio.text=string(precio)

Colocamos el siguiente script (programa) en el objeto cb_borrar, evento clicked:

sle_costo.text=""
st_desc.text=""
st_igv.text=""
st_precio.text=""
sle_costo.setfocus()

Para el objeto cb_cerrar escribimos el siguiente script para elevento clicked:

Close(parent) cierra a la ventana actual

También se puede usar close(<nombre de la ventana>)

Ing. Ysmael Rivas Uriol Paá gina 41


Herramientas de Desarrolllo de Software

Aplicación 3:
Desarrollar una aplicación que permita actualizar el saldo de una cuenta del cliente
de un banco. Se debe de ingresar el saldo anterior y el tipo de movimiento que
puede ser 1 o 2. Si el tipo de movimiento es 1 representa un deposito, si es 2
representa un retiro. En ambos casos se debe pedir el monto de la transacción.

Aquí observas que se usa un cuadro de texto para el ingreso de los Nombres y
Apellidos el cual tiene como nombre sle_na, para el ingreso Número de cuenta el
cual tiene como nombre sle_cuenta, para el ingreso del saldo anterior el cual tiene
como nombre sle_sa, para el ingreso del tipo de movimiento el cual tiene como
nombre sle_tm, para el ingreso del monto de la transacción el cual tiene como
nombre sle_mt y un texto estático que se denomina st_sc para mostrar el resultado
del saldo de la cuenta. Los botones de comando se llaman cb_calcular, cb_nuevo y
cb_cerrar.
Colocamos el siguiente script (programa) en el objeto cb_calcular, evento clicked:

double sa,mt,sc
integer tm
sa=double(sle_sa.text)
tm=integer(sle_tm.text)
mt=double(sle_mt.text)
sc=sa
choose case tm
case 1
sc=sa+ mt
case 2
if mt > sa then
messagebox("Error","No se puede retira más dinero")
else
sc=sa -mt
end if
end choose
st_sc.text=string(sc)

Ing. Ysmael Rivas Uriol Paá gina 42


Herramientas de Desarrolllo de Software

Colocamos el siguiente script (programa) en el objeto cb_nuevo, evento clicked:

sle_na.text=""
sle_cuenta.text=""
sle_sa.text=""
sle_tm.text=""
sle_mt.text=""
st_sc.text=""
sle_nombres.setfocus()

Para el objeto cb_cerrar escribimos el siguiente script para elevento clicked:

Close(parent) cierra a la ventana actual

También se puede usar close(<nombre de la ventana>)

AUTOEVALUACION
Desarrolla las siguientes aplicaciones construyendo primero un menú cuya opción
principal debe llamarse ejercicios y dentro de esta opción consideras una opción
ejemplo1 para el ejercicio 1, otra opción ejemplo2 para el ejercicio 2 y así
sucesivamente hasta el ejercicio 5.
1. Elabora una aplicación que dado el ingreso de tres números se muestre el
número medio (es el número que no es el mayor ni el menor de los tres).
2. En una librería se vende al por mayor cuadernos de 100 hojas y de 50 hojas. Se
desea saber el costo total dado el ingreso del número de cuadernos de 100
hojas y el número de cuadernos de 50 hojas. Considera el costo por cuaderno
de 100 hojas S/.0.90 y de 50 hojas S/.0.60. Además se desea saber el
descuento y el precio a pagar. La tasa de descuento es de 5% cuyo costo total
no supere los 200 soles, caso contrario del 7%. El precio a pagar es igual al
costo total menos el descuento.
3. Elabora una aplicación que permita el ingreso de 6 números y muestre la suma
y el promedio de los números pares y la suma y el promedio de los números
impares.
4. Construye una aplicación que permita calcular el área del triángulo en función
de sus lados, sabiendo que la formula es:
Raizcuadrada(p*(p-a)*(p-b)*(p-c))
Donde:
p: es el semiperimetro  (a+b+c)/2
5. Diseña una aplicación que permita calcular las raíces de una ecuación
cuadrática. La fórmula general es Ax^2+Bx+C=0. Realiza verificaciones en la
programación como por ejemplo que A debe ser un valor distinto a 0 para que
exista las dos raíces.

Ing. Ysmael Rivas Uriol Paá gina 43


Herramientas de Desarrolllo de Software

OBJETOS DE CONTROLES DE DATOS

Objeto de Control RadioButton

Permite seleccionar una opción de un grupo de alternativas. Este grupo de


alternativas debe pertenecer a un contenedor (objeto ventana o groupbox)

Objeto contenedor
Formulario para los cursos

Objeto contenedor
GroupBox para la forma de
pago

Propiedades

• Name: Para asignarle un nombre. Por ejemplo rb_visualbasic.


• Enabled: Habilita o ihnabilita al objeto. Es una propiedad de tipo booleano.
Verdadero es habilitado y falso es inhabilitado.
• Checked: Permite saber si el objeto esta seleccionado. La propiedad es
booleano, es decir, verdadero es seleccionado y falso es no seleccionado.

Objeto de Control CheckBox

Permite seleccionar más de una opción de un grupo de alternativas.

Propiedades

• Name: Para asignarle un nombre. Por ejemplo cbx_estabilizador.


• Enabled: Habilita o inhabilita al objeto. Es una propiedad de tipo booleano.
Verdadero es habilitado y falso es inhabilitado.
• Checked: Permite saber si el objeto esta seleccionado. La propiedad es
booleano, es decir, verdadero es seleccionado y falso es no seleccionado.

Aplicación 1:
Ing. Ysmael Rivas Uriol Paá gina 44
Herramientas de Desarrolllo de Software

Veamos a continuación una aplicación con el objeto ventana y con los objetos de
control básicos: StaticText, SingleLineEdit, CommandButton, RadioButton y
CheckBox. Puedes definir un área de trabajo (workspace) llamado ejemplos, el
target llamado ejemplos y la librería ejemplos.

Se desea construir una aplicación que permita el ingreso del costo de una
computadora, seleccionando los accesorios adicionales. La computadora se puede
adquirir al contado o al crédito. Si es al contado se hace un descuento del 6% del
costo de la computadora (no incluye los costos de los accesorios de la
computadora) y si es al crédito se aplicará un incremento de 5% si se paga a 6
cuotas, 6% de incremento si se paga en 12 cuotas y 7% de incremento si se paga a
18 cuotas. El incremento se aplica al costo de la computadora y al costo de los
accesorios.
Los accesorios de la computadora son: Impresora a 240 soles, estabilizador a 80
soles, scanner a 150 soles.
Calcula el costo total del equipo (incluyendo los accesorios, el descuento o el
incremento), el impuesto del IGV (19%), el precio a pagar y el monto de la cuota.

Solución:

Abrimos un pintor de ventana.

Primero Seleccionar Luego dar clic en OK

El diseño del formulario inicialmente debe quedar así:

Ing. Ysmael Rivas Uriol Paá gina 45


Herramientas de Desarrolllo de Software

SingleLineEdit

ChecBox

GroupBox

RadioButton

CommandButton

StaticText

Luego de aplicar las propiedades text y name de los objetos de control de datos, el
diseño del objeto ventana queda así (los nombres de los objetos se indica a través
de las flechas):

Ing. Ysmael Rivas Uriol Paá gina 46


Herramientas de Desarrolllo de Software

Sle_costo

Cbx_imp

Cbx_sca

Cbx_est

rb_12c

rb_18c

rb_6c
rb_cre
rb_con
cb_cerrar
cb_limpiar
cb_calcular

St_ctotal

St_igv

St_precio

St_cuota

Ahora veamos la programación (script) en los botones de comando.

Colocamos el siguiente script (programa) en el objeto cb_calcular, evento


clicked:

integer costo
costo=integer(sle_costo.text)
if costo=0 then
messagebox("Error","Ingresa el costo de la computadora")
return
end if

boolean verificar
verificar=rb_con.checked or rb_cre.checked
if not verificar then
messagebox("Error","Selecciona una forma de pago")
return
end if
if rb_cre.checked then
verificar=rb_6c.checked or rb_12c.checked or rb_18c.checked
if not verificar then
messagebox("Error","Selecciona el número de cuotas")
return
end if

Ing. Ysmael Rivas Uriol Paá gina 47


Herramientas de Desarrolllo de Software

end if
double cos_acce,dcto,incre,ctotal,igv,precio,cuota
if cbx_imp.checked then cos_acce=240
if cbx_est.checked then cos_acce=cos_acce+80
if cbx_sca.checked then cos_acce=cos_acce+150
if rb_con.checked then
dcto=costo*0.06
else
if rb_6c.checked then
incre=(costo+cos_acce)*0.05
cuota=(costo+cos_acce+incre)/6
end if
if rb_12c.checked then
incre=(costo+cos_acce)*0.06
cuota=(costo+cos_acce+incre)/12
end if
if rb_18c.checked then
incre=(costo+cos_acce)*0.07
cuota=(costo+cos_acce+incre)/18
end if
end if
ctotal=costo+cos_acce - dcto+incre
igv=ctotal*0.19
precio=ctotal+igv
st_ctotal.text=string(ctotal,"0.00")
st_igv.text=string(igv,"0.00")
st_precio.text=string(precio,"0.00")
st_cuota.text=string(cuota,"0.00")

A continuación el script (programa) en el objeto cb_limpiar, en el evento clicked:


sle_costo.text=""
cbx_imp.checked=false
cbx_est.checked=false
cbx_sca.checked=false
rb_con.checked=false
rb_cre.checked=false
rb_6c.checked=false
rb_12c.checked=false
rb_18c.checked=false
st_ctotal.text=""
st_igv.text=""
st_precio.text=""
st_cuota.text=""
sle_costo.setfocus()

El script (programa) en el objeto cb_cerrar, en el evento clicked:

Close(parent)

Ing. Ysmael Rivas Uriol Paá gina 48


Herramientas de Desarrolllo de Software

Finalmente colocas como script (programa) en el objeto ventana (window),


evento closequery:

integer nResp
nResp=MessageBox("Venta de Computadoras","Desea Salir de la aplicación",
Question!,YesNo!)
If nResp=2 Then
Return
End If

Objeto de Control ListBox

Llamada caja de lista, contiene un grupo de opciones de las cuales se puede


seleccionar una o más de una opción.

Item

Propiedades

 Ítems, usado solo en tiempo de diseño. Permite el llenado de una caja de lista.
La lista por defecto se ordena alfabéticamente

Usar ésta ficha para el


llenado de la caja de lista

 Sorted, permite la ordenación de la lista de opciones de la caja de lista. Esta


propiedad es de tipo booleano

Ing. Ysmael Rivas Uriol Paá gina 49


Herramientas de Desarrolllo de Software

Marcado ordena la lista,


desmarcado muestra tal
como se ingresó

Funciones

 AddItem(), permite en tiempo de ejecución agregar un item a la caja de lista


Por ejemplo:

lb_cursos.AddItem(“Internet”)

 SelectedIndex(), permite saber el índice actual o activo de una caja de lista.


Se entiende por índice actual aquella posición dentro de la lista del item
seleccionado
Por ejemplo:

Ing. Ysmael Rivas Uriol Paá gina 50


Herramientas de Desarrolllo de Software

pos=lb_cursos.SelectedIndex()
1
2 La variable pos debe contener el valor 2
3
4
5
6

 SelectedItem(), permite obtener el item seleccionado.


Por ejemplo:

String cur
cur=lb_cursos.SelectedItem()

La variable cur debe contener el dato “Power Builder”

 SelectItem(), selecciona un item de acuerdo al índice indicado


Por ejemplo:

lb_cursos.SelectItem(3)

 DeleteItem(), Borra un item de la caja de lista dado el valor del índice.


Por ejemplo:

Ing. Ysmael Rivas Uriol Paá gina 51


Herramientas de Desarrolllo de Software

lb_cursos.Deleteitem(4)

Va a eliminar el item “ASP Net” de la caja de lista


quedando luego 5 items.

 TotalItems(), permite saber el total de items de una caja de lista.


Por ejemplo:

total=lb_cursos.TotalItems()

Devuelve el valor de 6 que es el total de items que


se observa en la caja de lista

 Text(), Permite obtener un item de la caja de lista dado el valor del índice. No
se necesita que el item esté seleccionado.
Por ejemplo:

cur=lb_cursos.Text(5)

Devuelve el quinto item de la lista,


es decir, “Visual Basic Net”

 Reset(), Elimina todos los items de una caja de lista.

Aplicación 2:

Ing. Ysmael Rivas Uriol Paá gina 52


Herramientas de Desarrolllo de Software

Se quiere llevar a cabo la matricula de los cursos que el alumno indique teniendo en
cuenta que cada curso básico cuesta 80 soles y cada curso especializado cuesta 110
soles. Muestra el monto total de los cursos solicitados.

Solución:

rb_curbas
rb_curesp

lb_cursos
cb_agregar

cb_quitar
lb_cursosmat
lb_tipo

cb_calcular

st_monto

Colocamos el siguiente script (programa) en el objeto rb_curbas, evento clicked:

lb_cursos.reset()
lb_cursos.addItem("Matematica")
lb_cursos.addItem("Administracion")
lb_cursos.addItem("Economía")
lb_cursos.addItem("Marketing")
lb_cursos.addItem("Redaccion")
lb_cursos.addItem("Fisica")

De la misma forma se programa el objeto rb_curesp, evento clicked:

lb_cursos.reset()
lb_cursos.addItem("Windows 2003")
lb_cursos.addItem("Visual Basic Net")
lb_cursos.addItem("Visual Java")
lb_cursos.addItem("Power Builder")
lb_cursos.addItem("ASP Net")
lb_cursos.addItem("Redes")
lb_cursos.addItem("Proyectos Informáticos")

Programa en el objeto lb_cursos, en el evento selectionChanged lo siguiente:


cb_agregar.enabled=true

Ing. Ysmael Rivas Uriol Paá gina 53


Herramientas de Desarrolllo de Software

Programa en el objeto cb_agregar, en el evento clicked lo siguiente:

lb_cursosmat.additem(lb_cursos.selecteditem())
if rb_curbas.checked then
lb_tipo.additem("B")
else
lb_tipo.additem("E")
end if
lb_cursos.Selectitem(0)
cb_agregar.enabled=false

Programa en el objeto lb_cursosmat, en el evento clicked lo siguiente:

integer indice se declara una variable indice como entero


indice=lb_cursosmat.SelectedIndex() en indice se asigna el indice actual de lb_cursosmat
lb_tipo.SelectItem(indice) se selecciona un item con el valor de indice
cb_quitar.enabled=true se habilita el botón de comando quitar

Programa en el objeto cb_quitar, en el evento clicked lo siguiente:

integer indice se declara una variable indice como entero


indice=lb_cursosmat.selectedindex() en indice se asigna el indice actual de lb_cursosmat
lb_cursosmat.deleteitem(indice) se borra el item correspondiente al valor de indice
lb_tipo.deleteitem(indice) se borra el item correspondiente al valor de indice
cb_quitar.enabled=false se inhabilita el botón de comando quitar

Programa en el objeto cb_calcular, en el evento clicked lo siguiente:

integer a, monto
for a=1 to lb_tipo.TotalItems()
if lb_tipo.Text(a)="B" then
monto=monto+80
else
monto=monto+110
end if
next
st_monto.text=String(monto)

Objeto de Control DropDownListBox

Llamada también cuadro combinado o lista desplegable. Contiene un grupo de


opciones de las cuales se puede seleccionar una opción.

Ing. Ysmael Rivas Uriol Paá gina 54


Herramientas de Desarrolllo de Software

Propiedades

 Ítems, usado solo en tiempo de diseño. Permite el llenado de una lista


desplegable.
 Sorted, permite la ordenación de la lista de opciones de la caja de lista
desplegable. Esta propiedad es de tipo booleano

Funciones:

 AddItem(), permite en tiempo de ejecución agregar un item a la caja de lista


 TotalItems(), permite saber el total de items de una caja de lista desplegable.
 DeleteItem(), Borra un item de la caja de lista dado el valor del índice.

Aplicación 3

sle_cli

ddlb_tipo

cb_eliminar

cb_agregar

lb_arte

lb_cos

lb_artsel

lb_costo

st_ctotal

rb_cre
rb_con

cb_salir
cb_nuevo
cb_calcular

st_igv
st_dcto
st_pmen
st_precio
De acuerdo a lo seleccionado por el usuario en una de las opciones de la caja de
lista desplegable se llenará las listas list1 y list2 (en base a los ejemplos a citar
Ing. Ysmael Rivas Uriol Paá gina 55
Herramientas de Desarrolllo de Software

llena las listas con 8 artefactos con su respectivo costo, debes tener en cuenta que
son 8 artefactos por Audio, 8 artefactos por Video y 8 artefactos por línea blanca,
pero sólo se visualizan 6 artefactos de acuerdo a lo seleccionado en el tipo de
artefacto). Así por ejemplo:
Si es Audio: Minicomponente AIWA de 1500 watts 850.00
Minicomponente SONY de 1800 watts 920.00
Si es Video: Tv Color de 14" SAMSUNG 450.00
DVD multizona SAMSUNG 310.00
Si es Línea Blanca: Cocina de 4 hornillas FAEDA 725.00
Licuadora de 2 velocidades OSTER 240.00
Con el botón de comando Agregar se encargará de agregar a las listas list3 y list4
calculándose automáticamente el costo total y con el botón de eliminar en borrar el
artefacto previamente seleccionado de las listas list3 y list4.
El pago si es al contado se hará un descuento del 8% si el costo tal supera los 1200
soles, caso contrario se hará un descuento del 6%. El impuesto es del 18% sobre el
costo total menos el descuento, siendo el precio total el costo total menos el
descuento más el impuesto.
Si el pago es al crédito. No hay descuento en este caso, siendo el precio total al
costo total incrementado en un 10%. El pago mensual es igual al precio total
dividido entre 12 cuotas. El impuesto es del 18% sobre el costo total (incluyendo el
incremento).

Solución:

Hay que agregar los items (Audio Video y Linea Blanca) en la caja de lista
desplegable ddlb_tipo en la ficha Ítems de la vista de propiedades.

Programa en el objeto ddlb_tipo, en el evento selectionChanged lo siguiente:

lb_arte.reset()
lb_cos.reset()
if ddlb_tipo.text="Audio" then
lb_arte.additem("Minicomponente AIWA 1500 watts")
lb_cos.additem("850")
lb_arte.additem("Minicomponente SONY 1800 watts")
lb_cos.additem("920")
lb_arte.additem("RadioGrabadora AIWA 500 watts")
lb_cos.additem("250")
lb_arte.additem("Radio/CD 400 watts")
lb_cos.additem("280")
lb_arte.additem("Equipo de sonido SONY 3000 watts")
lb_cos.additem("1200")

Ing. Ysmael Rivas Uriol Paá gina 56


Herramientas de Desarrolllo de Software

lb_arte.additem("Equipo de sonido PIONNER 2500 watts")


lb_cos.additem("1300")
end if
if ddlb_tipo.text="Video" then
lb_arte.additem("Tv Color de 14 SAMSUNG")
lb_cos.additem("4500")
lb_arte.additem("DVD multizona SAMSUNG")
lb_cos.additem("310")
lb_arte.additem("Tv Color de 21 SONY")
lb_cos.additem("860")
lb_arte.additem("Tv color de 29 SONY")
lb_cos.additem("1480")
lb_arte.additem("Video Grabadora digital SONY")
lb_cos.additem("1800")
lb_arte.additem("Video Grabadora PANASONIC")
lb_cos.additem("1180")
end if
if ddlb_tipo.text="Linea Blanca" then
lb_arte.additem("Cocina de 4 hornillas FAEDA")
lb_cos.additem("725")
lb_arte.additem("Licuadora de 2 velocidades OSTER")
lb_cos.additem("240")
lb_arte.additem("Microondas SAMSUMG")
lb_cos.additem("280")
lb_arte.additem("Refrigeradora de 15 pies BOSCH")
lb_cos.additem("2140")
lb_arte.additem("Batidora OSTER")
lb_cos.additem("190")
lb_arte.additem("Estractor de jugos IMACO")
lb_cos.additem("230")
end if

Programa en el objeto lb_arte, en el evento selectionChanged lo siguiente:

integer indice se declara la variable indice de tipo entero


indice=lb_arte.selectedIndex() se asigna a indice, el indice actual de lb_arte
lb_cos.selectitem(indice) con el valor de indice se selecciona el costo correspondiente
cb_agregar.enabled=true se habilita el botón de comando cb_agregar

Es necesario que los botones de comandos cb_agregar y cb_eliminar su propiedad


enabled debe estar no seleccionado en la vista de propiedades, en la ficha general,
para lograr inhabilitarlos.

Programa en el objeto cb_agregar, en el evento clicked lo siguiente:

integer total, a, ctotal


lb_artsel.additem(lb_arte.selecteditem())
lb_costo.additem(lb_cos.selecteditem())
total=lb_artsel.totalitems()
for a=1 to total
ctotal=ctotal+integer(lb_costo.text(a))
next
st_ctotal.text=string(ctotal)

Ing. Ysmael Rivas Uriol Paá gina 57


Herramientas de Desarrolllo de Software

lb_arte.selectitem(0)
lb_cos.selectitem(0)
cb_agregar.enabled=false

Programa en el objeto lb_artsel, en el evento selectionChanged lo siguiente:

integer indice se declara la variable indice de tipo entero


indice=lb_artsel.selectedIndex() se asigna a indice, el indice actual de lb_artsel
lb_costo.selectitem(indice) con el valor de indice se selecciona el costo correspondiente
cb_eliminar.enabled=true se habilita el botón de comando cb_eliminar

Programa en el objeto cb_eliminar, en el evento clciked lo siguiente:

integer indice, total, a, ctotal


indice=lb_artsel.selectedIndex()
lb_artsel.deleteitem(indice)
lb_costo.deleteitem(indice)
total=lb_artsel.totalitems()
for a=1 to total
ctotal=ctotal+integer(lb_costo.text(a))
next
st_ctotal.text=string(ctotal)
cb_eliminar.enabled=false

Programa en el objeto cb_calcular, en el evento clicked lo siguiente:

integer ctotal
ctotal=integer(st_ctotal.text)
if ctotal=0 then
messagebox("Error","Selecciona un artefacto artefacto")
return
end if
boolean verifica
verifica=rb_con.checked or rb_cre.checked
if not verifica then
messagebox("Error","Selecciona una forma de pago")
return
end if
double dcto, incre, precio, igv, pmen
if rb_con.checked then
if ctotal>1200 then
dcto=ctotal*0.08
else
dcto=ctotal*0.06
end if
else
incre=ctotal*0.1
end if
igv=(ctotal - dcto + incre)*0.19
precio= ctotal - dcto + incre + igv
if rb_cre.checked then pmen=precio/12
Ing. Ysmael Rivas Uriol Paá gina 58
Herramientas de Desarrolllo de Software

st_dcto.text=string(dcto,"0.00")
st_igv.text=string(igv,"0.00")
st_precio.text=string(precio,"0.00")
st_pmen.text=string(pmen,"0.00")

Programa en el objeto cb_nuevo, en el evento clicked lo siguiente:

sle_cli.text=""
lb_arte.reset()
lb_cos.reset()
lb_artsel.reset()
lb_costo.reset()
st_ctotal.text=""
rb_con.checked=false
rb_cre.checked=false
st_dcto.text=""
st_igv.text=""
st_precio.text=""
st_pmen.text=""
sle_cli.setfocus()

Programa en el objeto cb_salir, en el evento clicked lo siguiente:

Close(parent) cierra a la ventana actual

También se puede usar close(<nombre de la ventana>)

Finalmente colocas como script (programa) en el objeto ventana (window),


evento closequery:

integer nResp
nResp=MessageBox("Proforma de Artefactos","Desea Salir de la aplicación",
Question!,YesNo!)
If nResp=2 Then
Return
End If

AUTOEVALUACION
Desarrolla las siguientes aplicaciones construyendo primero un menú cuya opción
principal debe llamarse Aplicaciones y dentro de esta opción consideras una opción
ejemplo1 para el ejercicio 1, otra opción ejemplo2 para el ejercicio 2 y así
sucesivamente hasta el ejercicio 3.

Ing. Ysmael Rivas Uriol Paá gina 59


Herramientas de Desarrolllo de Software

1. En los objetos de control listbox (list1 y list2), las listas debe llenarse con lo
siguiente: (los costos unitarios van a la lista list2).
Marca y tipo de Pintura Costo unitario
Vencedor Latex de 1 galón 42.00
Vencedor SuperLatex de 1 galón 52.50
Vencedor Latex de 1/4 galón 15.60
Tekno Latex de 1 galón 26.00
Tekno Superlatex 1 galón 32.30
CPP Latex de 1 galón 28.50
CPP Latex de 1/4 galón 11.20
CPP Latex Pato de 1 galón 28.90
Al seleccionar la marca y tipo de pintura en el objeto listbox (list1), en el objeto
textbox referido a la cantidad de producto se ingresa dicha cantidad. Este objeto
debe activarse su uso cuando se seleccione en la lista list1
Al usar el botón de comando AGREGAR (se activa cuando se ingresa la
cantidad) se adicionará en la lista list3 el producto seleccionado previamente y
en la lista list4 el costo que resulta de la operación de multiplicar la cantidad por
el costo unitario. El costo total es la suma de los costos visualizados en la lista
list4. El botón de ELIMINAR (se activa cuando se selecciona en el list3) permite
eliminar algún producto a comprar de la lista list3 con su respectivo costo de la
lista list4, siendo previamente seleccionado el producto a eliminar de la lista
list3. El costo total debe autocalcularse cuando suceda la eliminación.
Si el pago es al contado se hará un descuento del 10% del costo total. El monto
a pagar es igual al costo menos el descuento
Si el pago es al crédito se pagará en 6 cuotas o pagos mensuales iguales del
monto a pagar. El monto a pagar es igual al costo total incrementado en 8%.

Ing. Ysmael Rivas Uriol Paá gina 60


Herramientas de Desarrolllo de Software

2. En los objetos de control listbox (list1 y list2), las listas debe llenarse con lo
siguiente: (los costos unitarios en dólares van a la lista list2)
Impresora Costo unitario Impresora Costo unitario
Citizen 120D 156.00 Epson LX 400 196.00
Citizen 124D 185.00 Epson LX 810 215.00
Citizen 200EX 215.00 Canon Bubble JetBJ20 234.60
Citizen GSX-230 189.00 Canon Bubble JetBJ30 286.30
Epson ActionLAser 1000 650.60 HP DeskJet 500 485.00
Epson ActionLAser II 869.50 HP DeskJet 520 Printer 523.40
Epson LX 300 175.90 HP DeskJet 680C 752.80
Al seleccionar la marca y tipo de impresora en el objeto listbox (list1), en el
objeto textbox referido a la cantidad de producto se ingresa dicha cantidad. Este
objeto debe activarse su uso cuando se seleccione en la lista list1
Al usar el botón de comando AGREGAR (se activa cuando se ingresa la
cantidad) se adicionará en la lista list3 el producto seleccionado previamente y
en la lista list4 el costo que resulta de la operación de multiplicar la cantidad por
el costo unitario. El costo total es la suma de los costos visualizados en la lista
list4. El botón de ELIMINAR (se activa cuando se selecciona en el list3) permite
eliminar algún producto a comprar de la lista list3 con su respectivo costo de la
lista list4, siendo previamente seleccionado el producto a eliminar de la lista
list3. E costo total debe autocalcularse cuando suceda la eliminación. Por cada
impresora se paga un flete de 10 dólares. El total por flete se visualiza en el
costo por flete
Si el pago es al contado se hará un descuento del 10% del costo total de los
equipos. El monto a pagar es igual al costo menos el descuento, más el flete
Si el pago es al crédito se pagará en 6 cuotas o pagos mensuales iguales del
monto a pagar. El monto a pagar es igual al costo total más el flete
incrementado todo esto en 8%

Ing. Ysmael Rivas Uriol Paá gina 61


Herramientas de Desarrolllo de Software

INTRODUCCIÓN A JAVA - NETBEANS

Aspectos Generales

En esta parte de la Unidad Didáctica Herramientas de desarrollo de Software, se hará


una presentación y estudio de las interfaces visuales a través del entorno de desarrollo
denominado NetBeans, es decir, utilizaremos el lenguaje de programación Visual
Java. La asignatura se encuentra dividida en dos unidades: la primera es
“Manipulación de controles”, la segunda es “Diseño de formularios y Menús.

En la primera parte se estudiará a los objetos de control básicos como son JLabel,
JTextField, JButton, JRadioButton, JCheckBox, JList, JComboBox y Jtable; en la
segunda parte se tendrá en cuenta el diseño de aplicaciones a partir de casos, lo cual
implica el uso de los objetos de control básicos estudiados en la primera parte como
también la construcción o diseño de menús; y en la tercera se abarcará la construcción

Ing. Ysmael Rivas Uriol Paá gina 62


Herramientas de Desarrolllo de Software

o diseño de sistemas de aplicaciones haciendo uso de las sentencias selectivas,


repetitivas y el uso de arreglos como también se verá el uso de interfaces multimedia
y paquetes.

A continuación iniciamos el desarrollo de la asignatura y haciendo una introducción


a la programación visual.

¿Qué es Programación
Visual?
La programación visual brinda los conocimientos necesarios para diseñar y desarrollar
aplicaciones con un entorno visual amigable y fáciles de utilizar por el usuario.
Los lenguajes de programación visual, como Visual Java, hacen sencilla la tarea de
los programadores porque antes constituía una gran demora tiempo en el diseño de
ventanas o formularios.

Programación orientada a Objetos

En el caso del lenguaje de programación, Java aplica la programación orientada a


objetos (POO). La POO define a los programas en términos de “clases de objetos”,
objetos que son entidades que combinan estado (datos), comportamiento
(procedimientos o métodos) e identidad (propiedad o atributo del objeto) que lo
diferencia de los demás. La POO expresa un programa como un conjunto de
objetos, que colaboran entre ellos para realizar tareas.
Podríamos decir que que las características 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 métodos definen el comportamiento de los objetos.

Bibliotecas de Clases en Java


Sabemos que Java es un lenguaje de programación con un entorno de ejecución de
aplicaciones como también entorno de ejecución de despliegue de aplicaciones. Es
utilizado para desarrollar applets como aplicaciones.
Java está compuesta de bibliotecas de clases (package) siendo las más
importantes:

● Package Lang: compuesta por clases con funcionalidades básicas, arrays,


cadenas de caracteres, entrada/salidad, excepciones, etc. Este paquete
debes haberlo utilizado en el curso de Fundamentos de Programación.

Ing. Ysmael Rivas Uriol Paá gina 63


Herramientas de Desarrolllo de Software

● Package Util: compuesta por clases para utilizadas como números


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
gráficas 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 extensión .java. El


programa debe pasar por un proceso de compilación que consiste en convertir
tu programa fuente (el archivo de extensión .java) en un archivo de extensión .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 programación visual y por lo tanto el
uso de formularios, se creará un archivo adicional con extensión.frm que
guardará la estructura o diseño del formulario.

Veamos a continuación 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 programación
visual

El NetBeans es un entorno de desarrollo integrado que permite crear aplicaciones de


escritorio, aplicaciones web y aplicaciones móviles utilizando las últimas tecnologías
para los desarrolladores de software de Java. El IDE de NetBeans es un producto

Ing. Ysmael Rivas Uriol Paá gina 64


Herramientas de Desarrolllo de Software

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 on-line y
ayudas con el código.
Usaremos la versión 7.0 de NetBeans para la construcción y diseño de las
aplicaciones. Una vez que ingresas al entorno de desarrollo de NetBeans se observa:

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

Ing. Ysmael Rivas Uriol Paá gina 65


Herramientas de Desarrolllo de Software

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 botón de comando Next que mostrará la siguiente ventana:

Ing. Ysmael Rivas Uriol Paá gina 66


Herramientas de Desarrolllo de Software

Es conveniente que uno mismo cree su carpeta de destino de los archivos que
se generan para la construcción de una aplicación. 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 botón de comando Browse.

Ing. Ysmael Rivas Uriol Paá gina 67


Herramientas de Desarrolllo de Software

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

Ing. Ysmael Rivas Uriol Paá gina 68


Herramientas de Desarrolllo de Software

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 debería quedar de la siguiente forma:

Al dar click en Finish se mostrará el entorno de desarrollo de NetBeans listo para


dar inicio a la construcción de la aplicación.

Ing. Ysmael Rivas Uriol Paá gina 69


Herramientas de Desarrolllo de Software

Cuando se pretenda construir una aplicación de entorno visual tendríamos que


usar plantillas que el mismo NetBeans IDE te ofrece. Ahora, seleccionemos el
paquete ejercicios y luego elijamos la opción New y a continuación seleccionemos
JFrameForm

Ing. Ysmael Rivas Uriol Paá gina 70


Herramientas de Desarrolllo de Software

Una vez seleccionada la opción JframeForm se muestra la ventana New Jframe


Form para definir el nombre de clase.

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


de extensión .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

Ing. Ysmael Rivas Uriol Paá gina 71


Herramientas de Desarrolllo de Software

Al dar click en el botón de comando Finish se mostrará el entorno de desarrollo de


NetBeans listo para dar inicio al diseño de un formulario y por lo tanto dar comienzo
a una aplicación en un entorno visual.

Ing. Ysmael Rivas Uriol Paá gina 72


Herramientas de Desarrolllo de Software

USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON

Objeto de control JLabel


Un objeto de control Jlabel permite dibujar en el formulario una etiqueta,
entendiéndose como etiqueta una expresión estática que se quiere colocar. También
es usado para mostrar los resultados de un proceso.

Propiedades
más usadas:
● Text: Contiene el valor que se visualizará en el formulario.
● Font: Permite establecer el tipo de letra de la expresión 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.

Objeto de control
JTextField
Un objeto de control JTextField permite dibujar en el formulario un cuadro de
texto, es decir, una caja que permite la introducción de un dato o valor. Este objeto es
utilizado para el ingreso de datos.

Propiedades
más 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.

Ing. Ysmael Rivas Uriol Paá gina 73


Herramientas de Desarrolllo de Software

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


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

Métodos más 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


Objeto de control JButton
Un objeto de control JButton permite dibujar en el formulario un objeto que contiene
un proceso a ejecutar. Se utiliza comúnmente para llevar a cabo procesos específicos
según la naturaleza de la aplicación.

Propiedades más 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 más usado:

● ActionPerformed: Este evento se lleva a cabo cuando el usuario da click


sobre el objeto de control JButton.

Una aplicación usando los objetos de control

Ahora procedamos a desarrollar la misma aplicación usando como interfase un


formulario y los objetos de control antes mencionado.

Solución:

● Seleccionamos el paquete ejercicios y damos click botón derecho del


mouse y eligimos la opción New y posteriormente JframeForm.

Ing. Ysmael Rivas Uriol Paá gina 74


Herramientas de Desarrolllo de Software

Se muestra la ventana New JFrame Form y colocamos en Class Name el


nombre del formulario: frmAreaTriangulo.

Ing. Ysmael Rivas Uriol Paá gina 75


Herramientas de Desarrolllo de Software

En esta ventana se observa que la clase denominada frmAreaTriangulo


generará un archivo de extensión .java denominado frmAreaTriangulo que se
almacenará dentro de la carpeta ejercicios y pertenecerá al paquete ejercicios.

● Al momento de dar click en el botón 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. Ysmael Rivas Uriol Paá gina 76


Herramientas de Desarrolllo de Software

Sobre el diseño del formulario damos click botón derecho y seleccionamos


Set
Layout y posteriormente AbsoluteLayout.

Es necesario usar AbsoluteLayout para que permita dibujar los objetos de


Ing. Ysmael Rivas Uriol Paá gina 77
Herramientas de Desarrolllo de Software

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 diseño del formulario.

Continuamos el diseño 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

Ing. Ysmael Rivas Uriol Paá gina 78


Herramientas de Desarrolllo de Software

JLabel1 Text BASE:


JLabel2 Text ALTURA:
JLabel3 Text El área del Triángulo es:
JTextField1 Text (Vacío o limpiar)
JTextField2 Text (Vacío o limpiar)
JTextField3 Text (Vacío o limpiar)
JButton1 Text CALCULAR
JButton2 Text LIMPIAR
JButton3 Text CERRAR

Luego de aplicar los cambios en los valores de propiedades el diseño del


formulario debe quedar de la siguiente manera:

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


sobretodo a aquellos que intervienen en la lógica de la programación.
Seleccionamos el objeto de control JTextField1 y damos click con el
botón derecho del mouse y se visualizará un menú flotante y seleccionamos
Change Variable Name.

Ing. Ysmael Rivas Uriol Paá gina 79


Herramientas de Desarrolllo de Software

Colocamos como nombre al objeto JtextField1: txtBase

Continuamos con los objetos de control siguientes:

Objeto de Control Nombre


JTextField2 txtAltura
JTextField3 txtArea
JButton1 btnCalcular

Ing. Ysmael Rivas Uriol Paá gina 80


Herramientas de Desarrolllo de Software

JButton2 btnLimpiar
JButton3 btnCerrar

● Ahora procedamos a programar en los botones de comando.


En el botón CALCULAR (btnCalcular) al darle doble click y escribir el
siguiente código: (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.getTex
t()); 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 método getText()
permite obtener el dato introducido y con el método parseInt de la clase
Integer es convertido a numérico entero. Se hace lo mismo para la variable
altura. Para mostrar el cálculo de área se utiliza el método setText del cuadro
de texto txtArea que permite visualizar el contenido de la variable area. A la
variable se le aplica el método valueOf de la clase String para convertir el dato
área en cadena de caracteres.
En el botón LIMPIAR (btnLimpiar) luego de darle doble click escribimos el
siguiente código: (lo escrito en azul)
private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt)
{
txtBase.setTe
xt("");
txtAltura.setT
ext("");
txtArea.setTe
xt("");
txtBase.reque
stFocus();
}

Se limpian los cuadros de textos a través del método setText() y con el


método requestFocus() se pasa el cursor al objeto de control txtArea.

En el botón CERRAR (btnCerrar) luego de darle doble click, escribimos el


siguiente código: (lo escrito en azul)
private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt)
{
dispose();
}

El método dispose() permite descargar el formulario y terminar la ejecución

Ing. Ysmael Rivas Uriol Paá gina 81


Herramientas de Desarrolllo de Software

de la aplicación.
● Procedemos a ejecutar la aplicación seleccionado frmAreaTriangulo y al
dar clic botón derecho eligimos Run File.

Se muestra el formulario diseñado en etapa de ejecución.

● 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 líneas de código en el método
constructor de la clase frmAreaTriangulo. (escribe lo que está en azul)
public class frmAreaTriangulo extends javax.swing.JFrame

Ing. Ysmael Rivas Uriol Paá gina 82


Herramientas de Desarrolllo de Software

{
/** Creates new form frmAreaTriangulo */
public frmAreaTriangulo()
{
initComponents();
setSize(400,250);
setLocation(250,250);
}

El método setSize() permite establecer el tamaño del formulario y el método


setLocation() permite ubicar el formulario dentro de la pantalla. Los métodos
antes mencionados pertenecen al formulario frmAreaTriabgulo. Otros métodos
del formulario se verán más adelante.
● Procedemos nuevamente a ejecutar el formulario frmAreaTriangulo y se
mostrará de la siguiente manera:

PROGRAMA DEL PROMEDIO DE NOTAS

El diseño 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 lógica de la programación.

Ing. Ysmael Rivas Uriol Paá gina 83


Herramientas de Desarrolllo de Software

Continuamos con los objetos de control siguientes:

Objeto de control Nombre


JTextField2 txtNotaFinal
JTextField3 txtNotaPromocional
JButton1 btnCalcular
JButton2 btnLimpiar
JButton3 bntCerrar

Ahora procedamos a programar en los botones de comando(Ventana de edición


de código)

En el botón CALCULAR (btnCalcular) al darle doble click y escribir el siguiente


código: (lo escrito en azul)

Ing. Ysmael Rivas Uriol Paá gina 84


Herramientas de Desarrolllo de Software

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 método getText()
permite obtener el dato introducido y con el método parseInt de la clase Integer es
convertido a numérico entero. Se hace lo mismo para la variable NotaFinal. Para
mostrar el valor del cálculo de la nota promedio se utiliza el método setText del
cuadro de texto txtNotaPromocional que permite visualizar el contenido de la variable
NotaPromocionail. A la variable se le aplica el método valueOf de la clase String
para convertir el dato área en cadena de caracteres.

En el botón LIMPIAR (btnLimpiar) luego de darle doble click escribimos el


siguiente código: (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 través del método setText() y con el método
requestFocus() se pasa el cursor al objeto de control txtNotaParcial.

En el botón CERRAR (btnCerrar) luego de darle doble click, escribimos el


siguiente código: (lo escrito en azul)

private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt)


{
dispose();
}
El método dispose() permite descargar el formulario y terminar la ejecución de la
aplicación.

Ing. Ysmael Rivas Uriol Paá gina 85


Herramientas de Desarrolllo de Software

TAREA Nº 1
1. Se desea construir una aplicación 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 más el igv). El diseño del formulario es el siguiente:

2. Se desea construir una aplicación 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 diseño del formulario es el siguiente:

Ing. Ysmael Rivas Uriol Paá gina 86


Herramientas de Desarrolllo de Software

3. Elabora una aplicación que permita el ingreso de una cantidad de pulgada y


muestre su equivalencia en pies, en yardas, en metros y en centímetros. Se sabe
que un pie equivale a 12 pulgadas, una yarda equivale a 3 pies, una pulgada a
2.52 centímetros y un metro a 100 centímetros. Propone tú mismo el diseño
del formulario.

4. Elabora una aplicación que permita el ingreso de dos números y muestre el doble
del número mayor y el cuadrado del número menor. Propone tú mismo el
diseño del formulario.
5. Implementar una aplicación que permita acumular las ventas de los pasajes
Vendidos a los clientes de una determinada empresa.

6. Implementar una aplicación que permita calcular el importe de llamadas Nacionales


y Extranjeras y el total a
pagar (PN + PE).

Ing. Ysmael Rivas Uriol Paá gina 87


Herramientas de Desarrolllo de Software

7. Implementar una aplicación que permita Calcular el sub total y contar el número de
ventas de una determinada empresa.

Ing. Ysmael Rivas Uriol Paá gina 88


Herramientas de Desarrolllo de Software

JOptionPane
Introducción
 Un diálogo es una ventana independiente también llamada subventana que
pretende mostrar un aviso temporal al margen de la ventana de la aplicación
principal de Swing. Los Diálogos más comunes son mostrar un mensaje de error
o de advertencia a un usuario.

Libreria
 JOptionPane facilita el mostrar una ventana emergente en Java o también 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 métodos básicos para su manejo y uso
aunque existen muchos más solo haremos énfasis en los siguientes:

 showOptionDialog();

 showInputDialog();

 showMessageDialog();

 showConfirmDialog();

showOptionDialog
 Tenemos un método JOptionPane.showOptionDialog() que nos muestra la
ventana más configurable de todas, en ella debemos definir todos los botones
que lleva. De hecho, las demás ventanas disponibles con JOptionPane se
construyen a partir de esta. Por ello, al método debemos pasarle muchos
parámetros:

 parentComponent: A partir de este componente, se intentará determinar cuál es


la ventana que debe hacer de padre del JOptionPane. Se puede pasar null, pero
Ing. Ysmael Rivas Uriol Paá gina 89
Herramientas de Desarrolllo de Software

conviene pasar, por ejemplo, el botón desde el cual se lanza la acción que
provoca que se visualice el JOptionPane. De esta manera, la ventana de aviso se
visualizará sobre el botón y no se podrá ir detrás del mismo si hacemos click en
otro sitio.

 message: El mensaje a mostrar, habitualmente un String

 title: El título 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.

 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 según el
parámetro messageType.

 options: Un array de objects que determinan las posibles opciones. Si los


objetos son componentes visuales, aparecerán tal cual como opciones. Si son
String, el JOptionPane pondrá tantos botones como String.Si se pasa null,
saldrán los botones por defecto que se hayan indicado en optionType.

 initialValue: Selección por defecto. Debe ser uno de los Object que hayamos
pasado en el parámetro options. Se puede pasar null.

 La llamada a JOptionPane.showOptionDialog() devuelve un entero que


representa la opción que ha seleccionado el usuario. La primera de las opciones
del array es la posición cero. Si se cierra la ventana con la cruz de la esquina
superior derecha, el método 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");

Ing. Ysmael Rivas Uriol Paá gina 90


Herramientas de Desarrolllo de Software

showInputDialog();
 Tenemos varios métodos JOptionPane.showInputDialog() y la diferencia entre
ellos es que tienen más o menos parámetros, según queramos aceptar o no las
opciones por defecto. Los parámetros y sus significados son muy similares a los
del método showOptionDialog(),

Ejemplo
String seleccion = JOptionPane.showInputDialog( null, "Input dialog",
JOptionPane.QUESTION_MESSAGE);

showMessageDialog();
 Esta es la más sencilla de todas, sólo muestra una ventana de aviso al usuario. La
ejecución se detiene hasta que el usuario cierra la ventana. Hay varios métodos
con el mismo nombre y más o menos parámetros, en función 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 Mundo", "Lo de siempre",
JOptionPane.INFORMATION_MESSAGE);

Ing. Ysmael Rivas Uriol Paá gina 91


Herramientas de Desarrolllo de Software

showConfirmDialog();
Este método muestra una ventana pidiendo una confirmación al usuario y da al usuario
opción de aceptar o cancelar.El método 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( null, "¿Lo
confirmas?“,JOptionPane.QUESTION_MESSAGE);

USO DE LOS OBJETOS JRADIOBUTTON Y JCHECKBOX

Ing. Ysmael Rivas Uriol Paá gina 92


Herramientas de Desarrolllo de Software

Objeto de Control JRadioButton


Un objeto de control JRadioButton permite dibujar en el formulario una opción que
puede ser seleccionada, es decir, es un objeto que define una opción o alternativa para
ser elegida. Este objeto debe mostrarse más de una vez en el diseño del formulario
para que exista la alternativa de seleccionar una opción de un grupo de opciones. Los
objetos son mutuamente excluyentes con respeto a la selección. 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 selección de una opción cuando la aplicación se
encuentre en ejecución. En las dos aplicaciones que veremos más adelante se hará
hincapié en este asunto.

Propiedades más usadas:


● Text: Permite establecer la expresión de la opción.
● Font: Permite establecer el tipo de letra en el objeto de control.
● Enabled: Para habilitar o inhabilitar el uso del objeto de control.
Método más usado:

● isSelected(): retorna el valor de verdadero si el objeto se encuentra


seleccionado y falso en caso contrario.

Objeto de Control
JCheckBox
Un objeto de control JCheckBox permite dibujar en el formulario una opción que
Ing. Ysmael Rivas Uriol Paá gina 93
Herramientas de Desarrolllo de Software

puede ser seleccionada, es decir, es un objeto que define una opción o alternativa para
ser elegida. La diferencia con respecto al objeto de control JRadioButton es que si se
tienen dos o más objetos JCheckBox se puede seleccionar más de una opción o
simplemente no seleccionar ninguna, por lo que no son mutuamente excluyentes. Se
tiene la siguiente figura:

En la figura anterior se observa un objeto JCheckBox que expresa como opción


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 crédito.

Propiedades
más usadas:
● Text: Permite establecer la expresión de la opción.
● Font: Permite establecer el tipo de letra en el objeto de control.
● Enabled: Para habilitar o inhabilitar el uso del objeto de control.
Método
más
usado:

● isSelected(): retorna el valor de verdadero si el objeto se encuentra


seleccionado y falso en caso contrario.

Aplicación 1
Vamos a construir una aplicación 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 Línea Blanca.
b. Si el pago es al crédito 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 Línea 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)
más el monto del IGV.
Solución:
● Procedamos a crear un proyecto denominado Aplicaciones dentro de una
carpeta llamada Practicas y como clase Aplicación1 que pertenece al paquete
de ejemplos. Luego damos click en el botón de comando Finish.

Ing. Ysmael Rivas Uriol Paá gina 94


Herramientas de Desarrolllo de Software

Seleccionamos la carpeta de ejemplos, damos click con el botón derecho


del mouse y elegimos la opción New y posteriormente JframeForm.

● A continuación, se visualiza la siguiente ventana y cambiamos el nombre


de la clase indicado por la flecha:

Ing. Ysmael Rivas Uriol Paá gina 95


Herramientas de Desarrolllo de Software

● Ahora procedemos a diseñar 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. Ysmael Rivas Uriol Paá gina 96


Herramientas de Desarrolllo de Software

● Dibujamos como etiqueta (usando un JLabel) la expresión: “Costo del


Artefacto” y el cuadro de texto (Usando un JtextField). También a través de
una etiqueta colocamos la expresión “Tipo de Artefacto” y luego 3 objetos
JRadioButton. Los objetos JRadioButton deben expresar Audio, Video y
Línea 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

Ing. Ysmael Rivas Uriol Paá gina 97


Herramientas de Desarrolllo de Software

como se aprecia en el navegador (lado izquierdo del diseño del formulario).

● 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 Línea 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.
Ing. Ysmael Rivas Uriol Paá gina 98
Herramientas de Desarrolllo de Software

● A continuación, agregamos un objeto JCheckBox para indicar la forma de


pago que solo puede ser de dos posibilidades: Contado o Crédito. Seleccionado
significa al Contado, no seleccionado significa al crédito. Agregamos los
demás objetos de control que se visualiza en el diseño del formulario y que
fueron estudiados en la sesión anterior. En el diseño 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 botón
derecho del mouse se procede a seleccionar la opción Change Variable Name

● Procedamos a programar en los botones de comando:


En el botón de comando CALCULAR (btnCalcular), al darle doble click,
escribimos el siguiente código: (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;
Ing. Ysmael Rivas Uriol Paá gina 99
Herramientas de Desarrolllo de Software

}
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=(costo-dcto+incre)+igv;
txtDcto.setText(String.valueOf(dcto));
txtIncre.setText(String.valueOf(incre));
txtIgv.setText(String.valueOf(igv));
txtMPagar.setText(String.valueOf(mpagar));
}
Una vez declaradas las variables de memoria, en la variable costo se asigna el
valor introducido en el cuadro de texto txtCosto gracias al método getText()
que logra obtener el dato colocado en el objeto de control. Con la sentencia if
se evalúa si está seleccionada la opción al contado y, si es así, se procede a
evaluar cuál de los tipos de artefactos está seleccionado para aplicar el cálculo
del descuento que será asignando a la variable de memoria dcto. En caso que
no esté seleccionada la opción al Contado entonces se asume que la forma de
pago es al crédito y se procede a evaluar cuál de los tipos de artefactos está
seleccionado para aplicar el cálculo del incremento que será asignado a la
variable incre. A continuación, se calcula el IGV y el monto a pagar. Luego,
los objetos de control txtDcto, txtIncre, txtIgv y txtMPagar reciben valores a
través de las variables de memoria dcto, incre, igv y mpagar en sus cuadros
de textos gracias al método setText(), por supuesto previamente se tiene que
convertir a cadena de texto los valores numéricos de las variables usando el
método valueOf() de la clase String.

En el botón de comando BORRAR (btnBorrar), luego de darle doble click,


escribimos el siguiente código: (lo escrito en azul)
private void btnBorrarActionPerformed(java.awt.event.ActionEvent evt)

{
txtCosto.setText(“”);
txtDcto.setText(“”);
txtIncre.setText(“”);
txtIgv.setText(“”);
txtMPagar.setText(“”)
;
rbAudio.setSelected(fa
lse);
rbVideo.setSelected(fa
lse);
rbLinea.setSelected(fal
se);
chkContado.setSelecte

Ing. Ysmael Rivas Uriol Paá gina 100


Herramientas de Desarrolllo de Software

d(false);
txtCosto.requestFocus(
);
}

Se limpian los cuadros de textos con sólo poner “” en el método setText() y a


los objetos botón de radio (JRadioButton) y el objeto de caja verificación
(JCheckBox) se les aplica el método setSelected() para lograr quitar la
selección de estos objetos. Lo más importante es que los cuadros de textos
estén limpios para poder permitir el ingreso de nuevos datos.
En el botón de comando CERRAR (btnCerrar), luego de darle doble click,
escribimos el siguiente código: (lo escrito en azul)
private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt)
{
dispose();
}

El método dispose() permite descargar el formulario y terminar la ejecución


de la aplicación.
● Luego procedemos a ejecutar la aplicación seleccionando frmAplicacion1 en
la página o pestaña Proyects (se encuentra al lado izquierdo del diseño
del formulario) y al dar click botón derecho elegimos Run File.

Tarea N° 2
1. Diseñar e implementar el siguiente formulario que permite calcular el descuento de
afiliación, utilizando controles RadioButton

2. Diseñar e implementar el siguiente formulario, utilizando controles CheckBox, que


permita calcular diversos descuentos.

Ing. Ysmael Rivas Uriol Paá gina 101


Herramientas de Desarrolllo de Software

3. Desarrollar el siguiente ejercicio (Afiliación: AFP=11%, ONP=15%) (Descuentos:


Judicial =5%, Préstamo =10, Alimentos =8%)

Ing. Ysmael Rivas Uriol Paá gina 102


Herramientas de Desarrolllo de Software

USO DEL OBJETO JLIST

Objeto de Control
JList
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 ejecución se
pueden seleccionar sus ítems. Pero para trabajar con este objeto es necesario usar un
objeto de la categoría de Swing Containers denominado JScrollPane. El objeto
JScrollPane permite hacer que el objeto JList tenga barra de desplazamiento que es
necesaria cuando el número de ítems es grande y no puede ser visto a simple vista
en el objeto de control JList. Cabe señalar que los objetos que pertenecen a Swing
Containers serán 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 más 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.

Métodos más 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. Ysmael Rivas Uriol Paá gina 103


Herramientas de Desarrolllo de Software

Evento más usado:

● ValueChanged(): Sucede cuando el usuario selecciona un ítem de la caja de


lista.

Aplicación:
Construir una aplicación 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 crédito. 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 crédito se
pagará un incremento del 7% del costo total. La aplicación debe mostrar el descuento,
el incremento y el monto a pagar por los seleccionados.
Solucion:
● Iniciamos con la creación de un proyecto denominado Aplicaciones.
Seleccionamos del menú, la opción File y luego New Proyect. Aparece la
ventana de New Proyect y damos clic en el botón de comando Next. En la
ventana New Java Application indicamos como nombre de proyecto
Aplicaciones creando como paquete aplicaciones. Al dar click en el botón de
comando Finish nos encontramos con el entorno de desarrollo.

Ing. Ysmael Rivas Uriol Paá gina 104


Herramientas de Desarrolllo de Software

 Seleccionamos el paquete de aplicaciones y al dar click con el botón derecho del


mouse elegimos la opción New y luego JFrameForm.

Ing. Ysmael Rivas Uriol Paá gina 105


Herramientas de Desarrolllo de Software

● A continuación se muestra la ventana New Jframe Form que debe quedar así:

● No olvidemos de dar click botón derecho del mouse sobre el formulario


y establecer AbsoluteLayout en Set Layout.

Ing. Ysmael Rivas Uriol Paá gina 106


Herramientas de Desarrolllo de Software

● Procedemos a colocar un objeto Jlabel con la expresión “ALUMNO:”


acompañado de un cuadro de texto (JTextField). Luego, colocar un Jlabel que
exprese “Seleccionar Cursos” y debajo de esta expresión dibujar un objeto
JScrollPane.

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


al diseño del formulario se muestra de la siguiente manera:

Ing. Ysmael Rivas Uriol Paá gina 107


Herramientas de Desarrolllo de Software

Luego queda el objeto JList dentro del objeto JScrollPane.

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

Ing. Ysmael Rivas Uriol Paá gina 108


Herramientas de Desarrolllo de Software

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

 Luego de seleccionar el botón de comando referido a la propiedad model se


muestra la siguiente ventana:

Ing. Ysmael Rivas Uriol Paá gina 109


Herramientas de Desarrolllo de Software

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

Ing. Ysmael Rivas Uriol Paá gina 110


Herramientas de Desarrolllo de Software

Luego dar clic en el botón de comando OK.


 El diseño del formulario debe quedar así:

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

Ing. Ysmael Rivas Uriol Paá gina 111


Herramientas de Desarrolllo de Software

● Adicionalmente pondremos en el diseño 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. Ysmael Rivas Uriol Paá gina 112


Herramientas de Desarrolllo de Software

● Posteriormente agregamos las formas de pago con dos objetos JRadioButton, los
botones de comando Calcular, Limpiar y Cerrar. Finalmente, los objetos que
mostrarán el descuento, el incremento y el monto a pagar por los cursos
seleccionados. El diseño del formulario debe quedar así:

● Ahora bien, si observamos en el diseño 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 llenarán en función a lo seleccionado
Ing. Ysmael Rivas Uriol Paá gina 113
Herramientas de Desarrolllo de Software

y agregado con el botón de comando Agregar. Por lo tanto, debemos


definir un modelo (model) para aquellas listas que se llenarán en tiempo de
ejecución. Por esto debemos definir las variables modelo1 y modelo2 como
DefaultListModel(), como se muestra a continuación (escribe lo que indica las
flechas de color rojo):

Para que funcione correctamente la clase DefaultListModel es necesario


agregar el paquete import javax.swing.*; después del paquete Aplicaciones.

● Una vez definidas las variables modelo1 y modelo2, en el método 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 método setModel(). También hacemos que los botones de comando
Agregar y Eliminar se inhabiliten desde la ejecución de la aplicación.

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

Ing. Ysmael Rivas Uriol Paá gina 114


Herramientas de Desarrolllo de Software

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 método getSelectedIndex().
Por ejemplo, si de la caja de lista lstCursos estuviera seleccionado Power
Builder, éste método devolvería 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 método setSelectedIndex(indice)
para dar el mismo índice a la caja de lista lstCostos. Finalmente, hacemos que
el botón de comando Agregar se habilite con el método setEnabled().

● A continuación, escribimos el siguiente código en el botón de comando Agregar


(sólo se escribe lo que señala la llave de color rojo):

Ing. Ysmael Rivas Uriol Paá gina 115


Herramientas de Desarrolllo de Software

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 método 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 método 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 través 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 interacción para poder encontrar el costo
total de los cursos seleccionados, para esto usamos el método elementAt() que
devuelve un ítem de una caja de lista con sólo indicar el valor del índice.
Finalmente en el objeto txtTotal se visualiza el contenido de la variable total e
inhabilitamos el botón de comando Agregar.

● Ahora programamos en la caja de lista lstCursel el evento ValueChanged


cuando querramos seleccionar un curso para luego eliminarlo (sólo escribe lo que
señala la llave de color rojo).

La idea es la misma que se aplicó en la programación sobre el evento


ValueChanged del objeto lstCursos. La diferencia está en que esta vez se
habilita el botón de comando Eliminar.

En el botón de comando Eliminar colocamos la siguiente programación (sólo se


escribe lo que señala la llave de color rojo):

Ing. Ysmael Rivas Uriol Paá gina 116


Herramientas de Desarrolllo de Software

Lo novedoso de esta programación es la presencia del método remove() que


elimina un ítem de la lista a través de la variable objeto modelo1 ó modelo2
dado el valor del índice. Al final de la programación se vuelve a calcular el
costo total de los cursos seleccionados y se inhabilita el botón de comando
Eliminar.

● Ahora procedemos a programar en el botón de comando Calcular (sólo se


escribe lo que señala la llave de color rojo):

● A continuación procedemos a programar en el botón de comando Limpiar


(sólo se escribe lo que señala la llave de color rojo):

Ing. Ysmael Rivas Uriol Paá gina 117


Herramientas de Desarrolllo de Software

En esta programación, la novedad está en que para limpiar totalmente una caja
de lista se hace con el método clear() perteneciente a las variables objeto
modelo1 y modelo2, con lo cual también se hace la limpieza a los objetos
lstCursel y lstCos. También, hacemos el uso del método 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 botón de comando Cerrar:

USO DEL OBJETO JCOMBOBOX

Ing. Ysmael Rivas Uriol Paá gina 118


Herramientas de Desarrolllo de Software

Objeto de Control
JComboBox
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 botón de comando de despliegue y luego seleccionar la opción
o ítem.

Una vez dado clic en el botón de despliegue se muestra las opciones o ítems del
objeto

Propiedades más 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

Ing. Ysmael Rivas Uriol Paá gina 119


Herramientas de Desarrolllo de Software

● setSelectedItem: Contiene el ítem seleccionado


Métodos más 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 numérico correlativo
no visible que va desde 0.

Evento más usado:

● ValueChanged(): Sucede cuando el usuario selecciona un ítem de la caja de


lista.
Aplicación
Construir una aplicación que permita el ingreso del nombre del alumno y
poder seleccionar de una lista desplegadle una categoría de los cursos. Al momento
de seleccionar la categoría se debe mostrar los cursos con sus respectivos costos
en las cajas de listas (los JList que se muestran al lado izquierdo del diseño 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 diseño del
formulario) los cursos solicitados por el alumno. El pago por el servicio de enseñanza
se establece de la siguiente manera:

● Existe un pago por matrícula 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 más
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 crédito.
● Existe un pago mensual cuando la forma de pago es al crédito y es equivalente
al costo total incrementado dividido en 4 cuotas.
Solucion:

 Usarás el mismo proyecto utilizado en la sesión anterior y sólo agregarás un


formulario (Jframe).

Ing. Ysmael Rivas Uriol Paá gina 120


Herramientas de Desarrolllo de Software

Inmediatamente se muestra la siguiente ventana:

Luego dar clic en el botón de comando Finish.

● A continuación se muestra el entorno de desarrollo de NetBeans y no


olvides de dar clic en el botón derecho del mouse sobre el formulario y
establece AbsoluteLayout en Set Layout.

Ing. Ysmael Rivas Uriol Paá gina 121


Herramientas de Desarrolllo de Software

● Procede a colocar un objeto Jlabel con la expresión “ALUMNO:”


acompañado de un cuadro de texto (JTextField). Por debajo de
“ALUMNO:” colocar un objeto Jlabel que exprese “Categoría de Cursos:” y
al lado derecho de éste objeto colocar un objeto JComboBox.

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.
Ing. Ysmael Rivas Uriol Paá gina 122
Herramientas de Desarrolllo de Software

● Luego de seleccionar el botón de comando referido a la propiedad


model se muestra la siguiente ventana:

● Ingresas las categorías de cursos como son: <Seleccionar>, Diseño


Gráfico, Diseño Web, Ofimática, Lenguajes de Programación y Sistemas
Operativos, quedando el diseño del formulario de la siguiente manera:

Ing. Ysmael Rivas Uriol Paá gina 123


Herramientas de Desarrolllo de Software

● Colocarás un objeto Jlabel con la expresión “Cursos Ofertados” y otro objeto


Jlabel ubicado al lado derecho de éste último con la expresión “Costo”.
Añades dos listas debajo de las expresiones de estos dos últimos Jlabel,
haciendo que los ítems sean eliminados o removidos a través del uso de
la propiedad model. Luego agregas dos botones de comando que indiquen
Agregar y Eliminar. Posteriormente, añades dos objetos Jlabel que expresen:
“Cursos Escogidos” y “Costo” y debajo de estos objetos Jlabel agregas dos
objetos JList siendo también eliminados o removidos los ítem a través del uso
de la propiedad model.

● A continuación agregas un objeto Jlabel con la expresión “Forma de


Pago:” y al lado derecho de éste último objeto colocas un JComboBox
que debe contener como ítems: <Seleccionar>, Contado y Crédito. Luego los
botones de comando CALCULAR, BORRAR y CERRAR y los objetos
que mostrarán el monto de la matrícula, el costo total y el pago mensual.
Los nombres de los objetos de control dibujados en el formulario queda de la
siguiente manera:

Ing. Ysmael Rivas Uriol Paá gina 124


Herramientas de Desarrolllo de Software

● Ahora bien, si observamos en el diseño del formulario, los cuatros objetos JList
no tienen ítems. Los objetos JList referidos a Cursos Ofertados y Costo
(objetos ubicados al lado izquierdo del diseño del formulario) se llenarán
de ítems de acuerdo a lo seleccionado en la lista desplegadle referido a la
Categoría de Cursos. Los objetos Jlist referidos a Cursos Escogidos y Costos
se llenarán en la medida que se seleccione un curso ofertado y se agregue
con el botón 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 después del paquete Aplicaciones.

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


DefaultListModel en la clase frmCursosExtension.

Ing. Ysmael Rivas Uriol Paá gina 125


Herramientas de Desarrolllo de Software

● 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 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. También hacemos que los botones de comando
Agregar y Eliminar se inhabilite su uso desde la ejecución de la aplicación.
Además le indicamos una localización dentro de la pantalla y el tamaño del
formulario (sólo escribe lo que señala la llave de color rojo).

● Ahora le toca el turno en la programación al objeto JComboBox denominado


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

Ing. Ysmael Rivas Uriol Paá gina 126


Herramientas de Desarrolllo de Software

En el evento mencionado programa lo siguiente (sólo escribe lo que señala la


llave de color rojo):

Ing. Ysmael Rivas Uriol Paá gina 127


Herramientas de Desarrolllo de Software

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 evalúa cuál de los ítems ha sido seleccionado.
Se sabe que el primer ítem de la lista desplegadle es <Seleccionar> y le
corresponde el índice 0, Diseño Gráfico el índice 1, Diseño Web el índice
2 y así sucesivamente. Cuando sea
<Seleccionar> solo se procede a limpiar los objetos lstCurOfer y
lstCostos a través del método clear() aplicados a las variables modelo1 y
modelo2. Si el ítem seleccionado es Diseño Gráfico 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 través del uso del método
addElement aplicados a las variables modelo1 y modelo2 que tienen relación

Ing. Ysmael Rivas Uriol Paá gina 128


Herramientas de Desarrolllo de Software

directa con los objetos lstCurOfer y lstCostos. De igual forma se trabaja para
los demás ítems del objeto JComboBox llamado cboCategorias.

● Si en estos momentos procedes a ejecutar la aplicación se mostrará el


formulario de la siguiente manera:

Y si seleccionas el ítem Diseño Gráfico se visualizará los cursos con


sus respectivos costos en los JList del lado izquierdo del diseño del formulario.

Ing. Ysmael Rivas Uriol Paá gina 129


Herramientas de Desarrolllo de Software

Selecciona el objeto lstCurOfer y ubícate 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 botón
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 método 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 método
setSelectedIndex(indice) para dar el mismo índice a la caja de lista lstCostos.
Finalmente hacemos que el botón de comando Agregar se habilite con el
método setEnabled()

● A continuación escribe el siguiente código en el botón de comando Agregar


(sólo escribe lo que señala la llave de color rojo):

Ing. Ysmael Rivas Uriol Paá gina 130


Herramientas de Desarrolllo de Software

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 método 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 método addElement
perteneciente al objeto variable modelo3 o modelo4. Finalmente
inhabilitamos el botón de comando Agregar.
● Ahora programa en la caja de lista lstCurEsco en el evento ValueChanged
cuando desees seleccionar un curso para luego eliminarlo (sólo escribe lo que
señala la llave de color rojo).

La idea es la misma que se aplicó en la programación sobre el evento


ValueChanged del objeto lstCurOfer. La diferencia está en que esta
vez se habilita el uso del botón de comando Eliminar.

● En el botón de comando eliminar colocas la siguiente programación (sólo


escribe lo que señala la llave de color rojo):

En esta programación se hace uso del método remove() que elimina un ítem de
la lista a través de la variable objeto modelo3 ó modelo4 dado el valor del
índice. Al final de la programación se inhabilita el botón de comando
Eliminar.

● Ahora procede a programar en el botón de comando Calcular (sólo escribe lo


que señala la llave de color rojo):

Ing. Ysmael Rivas Uriol Paá gina 131


Herramientas de Desarrolllo de Software

Se declara la variable de memoria cuenta que almacena la cantidad de ítems


existentes en la caja de lista lstCurEsco a través del uso del método
Size() aplicado a la variable modelo3. También se declara una variable de
memoria i de tipo entero y tres variables de tipo float para el cálculo de la
matrícula, el costo total y el pago mensual. A través de una sentencia for se
procede a obtener los valores de la caja de lista lstCos usando la variable
modelo4 con el método 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 ejecución del
programa gracias a instrucción return (retornar). En los siguientes tres if se
calcula el monto de la matrícula aplicando el porcentaje indicado en el
enunciado de la aplicación. En la siguiente sentencia if se evalúa si se
Ing. Ysmael Rivas Uriol Paá gina 132
Herramientas de Desarrolllo de Software

seleccionó una forma de pago y si no se logró hacerlo muestra un mensaje de


error y suspende la ejecución del programa. Luego con las siguientes
sentencias if se evalúa la forma de pago y se procede hacer los cálculos
respectivos. Finalmente se los resultados en las variables de memoria de tipo
float se envían a los objetos JTextField par ser visualizados en el formulario.
● La programación 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 aplicación se debe visualizar el formulario y una vez interactuado se
mostrarán los resultados.

Ing. Ysmael Rivas Uriol Paá gina 133


Herramientas de Desarrolllo de Software

TAREA

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


trabajador
seleccionado.

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

Ing. Ysmael Rivas Uriol Paá gina 134


Herramientas de Desarrolllo de Software

3. Diseñar el formulario planilla, al seleccionar el cargo debe de mostrarse el jornal día


(Obrero:20, Maestro: 30, Operario: 40), mostrar el sueldo, todos los descuentos y el
sueldo neto, además debe de mostrar el total a pagar.

4. Diseñar formulario Ventas

Nuevo: Limpia los


cuadros textos del
formulario
Calcular: Calcula el
subtotal en dólares 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 además
USO DEelLmonto bruto
disminuye
Pagar: Depende de la
Ing. Ysmael Rivas Uriol forma Paádegina 135 Contado
pago;
su incremento es de 0%, y
Herramientas de Desarrolllo de Software

OBJETO JTABLE

Objeto de Control JTable


Como programadores, sabemos muy bien que la presentación de datos tabulados es
una de las tareas más comunes que se presentan al momento de crear interfaces
gráficas; 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 más complejo sea el requerimiento a cubrir, se requerirá en igual medida
utilizar más métodos o recursos de la clase.
Los modelos de tabla son objetos que implementan la interface TableModel; a través
de ellos es posible personalizar mucho más y mejor el comportamiento de los
componentes Jtable, permitiendo utilizar al máximo sus potencialidades.
El siguiente gráfico intenta mostrar como cada componente JTable obtiene siempre
sus datos desde un modelo de tabla.

Ing. Ysmael Rivas Uriol Paá gina 136


Herramientas de Desarrolllo de Software

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 más usada:
● Model: Permite definir el número de columnas y filas del objeto como
también las expresiones que irán en las columnas.

Métodos más usados:

● addColumn(): Añade la columna al final de la matriz de columnas.


● setModel(): Asigna el modelo de datos al objeto JTable.
● GetRowCount(): Devuelve el número de filas en la tabla.

DefaultTableModel
Esta clase permite construir el modelo para el objeto Table. Los métodos más
utilizados son:
● addColumn(): Añade una columna al modelo.

● AddRow(): Añade una fila al final del modelo.


● getColumnCount(): Devuelve el número de columnas en esta tabla de datos.
● getRowCount(): Devuelve el número de filas en esta tabla de datos.
● getValueAt(): Devuelve un valor de atributo para la celda en la
posición row, column.
● insertRow(): Inserta una fila en el modelo.
● RemoveRow(): Elimina del modelo según la posición de la fila indicada.

Aplicación

Construir una aplicación que permita calcular el promedio de las notas obtenidas en el
curso de Programación Visual. La aplicación 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.
Además debe permitir la selección del turno a la que pertenece el alumno. A través de
un botón de comando debe agregar los datos en un objeto Jtable, calculando el
promedio de las notas; y a través de otro botón de comando debe eliminar la fila
seleccionada en el objeto JTable. También se debe mostrar el total de filas agregadas
en el objeto JTable.
Solucion:
● Usaremos el mismo proyecto utilizado en la sesión anterior y sólo
agregarás un formulario (Jframe).

Ing. Ysmael Rivas Uriol Paá gina 137


Herramientas de Desarrolllo de Software

Inmediatamente se muestra la siguiente ventana:

Luego dar clic en el botón de comando Finish.

● A continuación se muestra el entorno de desarrollo de NetBeans y no


olvides de dar clic en el botón derecho del mouse sobre el formulario y
establece AbsoluteLayout en Set Layout.

Ing. Ysmael Rivas Uriol Paá gina 138


Herramientas de Desarrolllo de Software

● Procedemos a colocar un objeto Jlabel con la expresión


“CALIFICACIONES DEL CURSO DE PROGRAMACION VISUAL”. Debajo
de éste título ubicar un objeto
Jlabel con la expresión “ALUMNO:” acompañado de un cuadro de texto
(JTextField)
. A continuación, colocar otro Jlabel con la expresión “Nota de la I Unidad”
acompañado 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.

Ing. Ysmael Rivas Uriol Paá gina 139


Herramientas de Desarrolllo de Software

● 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 botón de comando referido a la propiedad model se
muestra la siguiente ventana:

● Ingresamos “<Seleccionar>”,“Mañana”, “Tarde” y “Noche” y luego hacemos


click en el botón de comando OK. Continuamos con el diseño del formulario
agregando un botón de comando “Agregar” y un botón de comando
“Eliminar”. Luego procedemos a agregar el objeto JTable.

Ing. Ysmael Rivas Uriol Paá gina 140


Herramientas de Desarrolllo de Software

● 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 botón de comando referido a la propiedad


model se muestra la siguiente ventana:

Ing. Ysmael Rivas Uriol Paá gina 141


Herramientas de Desarrolllo de Software

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


la
conformación de 4 columnas y 4 filas, dando la posibilidad de aumentar o
disminuir el número de columnas y filas. Además podemos establecer los
títulos 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
número de columnas a través de la programación y las filas se crearán en la
medida que se necesiten.

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


de la siguiente manera:

Ing. Ysmael Rivas Uriol Paá gina 142


Herramientas de Desarrolllo de Software

● Vamos a proceder a programar. Comenzamos con hacer uso del paquete


swing y específicamente a las clases JoptionPane y a la clase JTable.

● 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. Ysmael Rivas Uriol Paá gina 143


Herramientas de Desarrolllo de Software

Declaramos y creamos una variable de memoria dtm del tipo


DefaultTableModel.
● 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 “Alumno”, ”I
Unidad”, “II Unidad”, “III Unidad”, “Promedio” y “Turno”, 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). Finalmente, se vincula el
modelo, representado en la variable dtm, al objeto JTable llamado Tabla.

 Si en estos momentos decidimos ejecutar nuestra aplicación, quedaría nuestro


formulario así:

Observamos que el objeto JTable muestra las columnas

Ing. Ysmael Rivas Uriol Paá gina 144


Herramientas de Desarrolllo de Software

definas en la programación hecha en el método


constructor.
● Procedamos con la programación del botón de comando Agregar (sólo
escribe lo que se señala la llave de color rojo).

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


tamaño
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
negación, 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 método 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 método setSelectedIndex(). Si la variable
verifica es verdadero significa que falta ingresar algún dato o seleccionar el

Ing. Ysmael Rivas Uriol Paá gina 145


Herramientas de Desarrolllo de Software

turno. Finalmente, se muestra la cantidad de filas agregadas en el cuadro


de texto txtTotal y haciendo uso del método setRowCount() perteneciente a
dtm.
● Procedamos con la programación del botón de comando Eliminar.

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 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 método setRowCount()
perteneciente a dtm.

● Procedemos finalmente a ejecutar el formulario.

Ing. Ysmael Rivas Uriol Paá gina 146


Herramientas de Desarrolllo de Software

TAREA

1. Usando el objeto Jtable diseña el siguiente formulario:

Se desea ingresar el título de la película, seleccionar la categoría que puede ser


Drama, Comedia, Accón, Suspenso, etc. y el ingreso de la duración. 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 películas observadas en el Jtable, de igual
manera debe suceder cuando se proceda a eliminar con el otro botón de comando.
La aplicación además, debe permitir seleccionar una categoría y mostrar la cantidad
de películas de dicha categoría

2. Usando el objeto Jtable diseña el siguiente formulario:

Ing. Ysmael Rivas Uriol Paá gina 147


Herramientas de Desarrolllo de Software

Se desea ingresar la descripción 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 botón de comado Agregar se
genera una fila en el Objeto JTable y se mostrará la descripción 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 botón de comando eliminar, aparte de
eliminar la fila seleccionada en el Objeto JTable, se debe buscar la descripción del
artefacto de mayor costo.

Ing. Ysmael Rivas Uriol Paá gina 148

Anda mungkin juga menyukai