Está en la página 1de 54

UNIVERSIDAD TCNICA DE MACHALA

DOCENCIA EN INFORMTICA
PROGRAMACIN EN JAVA

INTERFAZ GRAFICA SWING

Contenido
INTRODUCCIN .............................................................................................................................3
JOptionPane - Cuadros de Dilogos...............................................................................................5
showMessageDialog():...............................................................................................................5
showOptionDialog():..................................................................................................................7
showInputDialog(): ....................................................................................................................8
showCofirmDialog():..................................................................................................................8
Ejercicio 1.................................................................................................................................11
COMPONENTES JLABEL, JTEXTFIELD Y LBUTTON .......................................................................15
Ejercicio 2.................................................................................................................................16
COMPONENTE JRADIOBUTTON Y JCHECKBOX ............................................................................24
Ejercicio 3.................................................................................................................................25
COMPONENTE JLIST.....................................................................................................................31
Ejercicio 4.................................................................................................................................32
COMPONENTE JCOMBOBOX .......................................................................................................43
Ejercicio 5.................................................................................................................................44

UTMACH | Universidad Tcnica de Machala

Programacin Visual

INTRODUCCIN
El concepto de programacin visual es un poco confuso ya que actualmente se le considera
programacin visual a los lenguajes de programacin textual que tienen una interfaz grfica para
poder visualizar lo que uno est desarrollando. Este concepto en programacin visual es errneo ya
que este es aquel que por medio de iconos puedes ir creando programas sin tener un lenguaje
textual atrs de l.

La programacin visual (visual programming) se refiere al desarrollo de software donde las


notaciones grficas y los componentes de software manipulables interactivamente son usados
principalmente para definir y componer programas.

La programacin visual se define comnmente como el uso de expresiones visuales (tales como
grficos, animacin o iconos) en el proceso de la programacin, pueden ser utilizadas para
formar la sintaxis de los nuevos lenguajes de programacin visuales que conducen a los nuevos
paradigmas tales como programacin por la demostracin; o pueden ser utilizadas en las
presentaciones grficas del comportamiento o de la estructura de un programa.
El objetivo de la programacin visual es mejorar la comprensin de los programas y simplificar la
programacin en s. Ms all, la programacin visual deber fomentar a los usuarios finales a
construir sus propios programas, que de otra forma deben ser escritos por programadores
profesionales.
Sabemos que Java es un lenguaje de programacin con un entorno de ejecucin de aplicaciones
como tambin entorno de ejecucin de despliegue de aplicaciones. Es utilizado para desarrollar
applets como aplicaciones.
Java est compuesto de bibliotecas de clases (package) siendo las ms importantes:
Package Lang: compuesta por clases con funcionalidades bsicas, arrays, cadenas de
caracteres, entrada/salidad, excepciones, etc. Este paquete debes haberlo utilizado en el
curso de Fundamentos de Programacin.
Package Util: compuesta por clases para utilizadas como nmeros aleatorios, vectores,
propiedades del sistema, etc.
Package net: compuesta por clases, es usada para la conectividad y trabajo con redes,

Programacin III

URL, etc.

Ing. Joffre Cartuche C

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Package Applet: compuesta por clases, es usada para el desarrollo de aplicaciones


ejecutables en navegadores.
Package Awt y Swing: compuesta por clases para el desarrollo de interfaces grficas de
usuario. El paquete swing es el paquete por excelencia para el desarrollo de los temas del
presente curso.
Observa la siguiente figura:

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

Programacin III

ayuda on-line y ayudas con el cdigo.

Ing. Joffre Cartuche C

UTMACH | Universidad Tcnica de Machala

Programacin Visual

JOptionPane - Cuadros de Dilogos


Un cuadro de dilogo no es ms que una ventana que nos permite mostrar mensajes, por ejemplo de
error, de advertencia o de informacin, o para pedir el ingreso de un valor, adems nos permite solicitar
al usuario su intervencin para decidir si se realizar o no una accin, como ser los mensajes de
confirmacin.
JOptionPane es una clase de la biblioteca Swing (que contiene las libreras de interfaz grfica de
usuario), para poder usar sus mtodos es necesario importarla: import javax.swing.JOptionPane;
Podemos mencionar que JOptionPane tiene bsicamente 4 mtodos, que definen la manera y la
funcionalidad con la que se mostrar un cuadro de dilogo:

showMessageDialog():
Muestra un cuadro de dilogo al usuario, normalmente de carcter informativo, como mnimo recibe 2
parmetros: el componente padre (que puede ser null) y una cadena de caracteres que corresponde al
mensaje a ser mostrado. Tambin puede recibir como parmetro una cadena que ir como ttulo del
cuadro y el tipo de mensaje a mostrarse (determinado por una constante de la clase JOptionPane).
Parmetros:
Component componentePadre: el componente al que pertenece.
Object mensaje = es el objeto que corresponde al mensaje (texto) a mostrarse.
String titulo = texto que ser el ttulo del cuadro de dilogo.
int tipoDeMensaje = definido por una constante de la clase JOptionPane
Sintaxis:
JOptionPane.showMessageDialog(this, "Este es un mensaje simple");
Aqu se le enva como componente padre el objecto actual; es interesante esta prctica ya que de esta
manera el formulario se bloquear mientras est abierto el cuadro de mensaje, impidiendo que se
efecten otras acciones, en cambio si se le pasa null en vez de un objeto el formulario (padre) al que
pertenece estar disponible para otras acciones (lo que estara incorrecto).

Programacin III

Resultado:

Ing. Joffre Cartuche C

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Sintaxis:
JOptionPane.showMessageDialog(this, "Este es un mensaje detallado", "xito!",
JOptionPane.INFORMATION_MESSAGE);
Como se puede ver, lo diferente est en que se le pasan dos argumentos ms a parte del componente
padre y del mensaje a mostrarse, el tercer parmetro es lo que se situar como ttulo del cuadro de
dilogo y el ltimo parmetro es la constante que define el tipo de mensaje a ser mostrado.
Resultado:

Constantes de JOptionPane: los mensajes pueden ser de tipo:


informativo (INFORMATION_MESSAGE),
de error (ERROR_MESSAGE),
de advertencia (WARNING_MESSAGE),
mensaje plano (PLAIN_MESSAGE)
mensaje interrogativo (QUESTION_MESSAGE), aunque el uso de este ltimo tipo de mensaje
no tiene mucho sentido para este caso.

Programacin III

Ejemplos

Ing. Joffre Cartuche C

UTMACH | Universidad Tcnica de Machala

Programacin Visual

showOptionDialog():
Podramos decir que gracias a este mtodo podemos obtener un cuadro de dilogo ajustado a nuestra
necesidad, ya que es totalmente configurable.
Parmetros:
componentePadre = el objeto que indica de qu componente es hijo.
objetoMensaje = un String que corresponde al texto a mostrarse como mensaje.
Titulo = String que se establecer como ttulo de la ventana.
TipoDeOpcion = es un entero, representado por unas constantes que definen qu opciones
tendr el cuadro de dilogo.
puede ser:
DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION,
YES_CANCEL_OPTION.
TipoDeMensaje: entero que determina el tipo de mensaje (ERROR_MESSAGE, por ejemplo).
Icono = la imagen que acompaar al mensaje, si no se especifica (es decir, se pasa null) se
establecer uno por defecto de acuerdo al tipoDeMensaje.
Opciones = un array tipo Object que indica las opciones posibles, normalmente debe ser
coherente con el tipoDeOpcion elejido.
ValorInicial = es la opcin predeterminada, deber ser una de las opciones introducidas en el
array de opciones. Puede ser null.
Ejemplo:
- Sintaxis:
int seleccion = JOptionPane.showOptionDialog(btn_Option, "Este es un cuadro de dialogo Option",
"showOptionDialog", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
null, new Object[] {"Si", "No","Cancelar"}, "Si");

Programacin III

Retorna un entero que corresponde a la opcin seleccionada por el usuario, como sabrn, el valor del
entero corresponde a la posicin que ocupa la opcin en el array es decir si se selecciona "No" devolver
1 (uno) , ya que la primera posicin de un array es 0 (cero).
- Resultado:

Ing. Joffre Cartuche C

UTMACH | Universidad Tcnica de Machala

Programacin Visual

showInputDialog():
Sirve para mostrar una ventana que permita ingresar datos (una cadena, texto, nmeros, etc.). Los
parmetros que puede recibir son los mismos que los del MessagaDialog.
Ejemplo:
- Sintaxis:
String texto = JOptionPane.showInputDialog (this, "Ingrese un texto: ",
"showInputDialog",JOptionPane.INFORMATION_MESSAGE);
- Resultado:

Nota:
Cuando lo que se va a ingresar es un nmero, se debe realizar una conversin para poder utilizarlo como
tal. Por ejemplo:
int numero = Integer.parseInt(JOptionPane.showInputDialog (this, "Ingrese un nmero: ",
"showInputDialog",JOptionPane.INFORMATION_MESSAGE));
Pero esto debemos controlar que se escriban slo nmero para que no arroje errores en la conversin,
podramos solucionar tan slo encerrndolo en un try-catch

showCofirmDialog():
Mtodo que nos sirve para solicitar al usuario la confirmacin de una determinada accin. Puede
establecerse los distintos parmetros antes mencionados, como por ejemplo el componente padre,
mensaje, ttulo y tipo de mensaje. Para el tipo de mensaje las constantes posibles son:

Programacin III

YES_NO_OPTION,
YES_NO_CANCEL_OPCION,
YES_OPTION,
NO_OPTION,
CANCEL_OPTION

Ing. Joffre Cartuche C

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Ejemplo:
- Sintaxis:
int opcion = JOptionPane.showConfirmDialog(this, "Desea seguir ejecutando la aplicacin?",
"Seleccione una opcin", JOptionPane.YES_NO_OPTION);
- Resultado:

Retorna un entero que corresponde a la opcin seleccionada por el usuario.


Hasta aqu, se puede hacer uso de todas las funcionalidades que nos facilita la clase JOptionPane,
adems de darle un toque ms elegante a nuestro programa.

- Sintaxis:
1 int ax = JOptionPane.showConfirmDialog(null, "Estas en java?");
2 if(ax == JOptionPane.YES_OPTION)
JOptionPane.showMessageDialog(null, "Has seleccionado SI.");
3
4 else if(ax == JOptionPane.NO_OPTION)
JOptionPane.showMessageDialog(null, "Has seleccionado NO.");
5

- Resultado:
En la lnea 1 se puede observar que cree una variable entera, el null que se antepone al mensaje es
necesario, ya que este se toma cuando el usuario pulsa la tecla Esc o presiona Cancelar, el mensaje a
mostrar se usa como en los anteriores cuadros de dialogo.
- En las lneas 2 y 4 se usan condicionales para tomar las acciones respectivas de acuerdo a la opcin que
haya dado el usuario.

Programacin III

- En las lneas 3 y 5 se muestran mensaje correspondientes a la respectiva opcin que haya dado el
usuario.

Ing. Joffre Cartuche C

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Si seleccionamos S veremos el siguiente cuadro de dialogo:

Programacin III

Si por el contrario seleccionamos NO veremos el siguiente cuadro de dialogo:

Ing. Joffre Cartuche C

10

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Ejercicio 1
A continuacin vamos a desarrollar una aplicacin sencilla que permita
calcular el rea del tringulo dado los valores de la base y la altura. No se
utilizar formulario, pero s las clases del paquete swing para ingresos y salida
de datos.
Estando en el entorno de desarrollo NetBeans seleccionamos la opcin del men y luego la opcin
New Proyect.
Al momento de seleccionar New Proyect

Se visualiza la siguiente ventana:


Seleccionamos para Categories Java y para Proyects Java Application y luego damos click en el

Programacin III

botn de comando Next.

Ing. Joffre Cartuche C

11

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Usamos el botn de comando Browse para crear una carpeta denominada Ejercicios en la unidad E.
En Proyect Name colocamos AreaTriangulo y en el cuadro de texto referido a Create Main Class
colocamos ejercicios.AreaTriangulo, lo cual permitir crear un paquete denominado ejercicios y como
primera clase AreaTriangulo, es decir, se crea el archivo AreaTriangulo.java que pertenecer al paquete
ejercicios.

Sabemos que en Java una clase tiene comnmente al mtodo Main que es el mtodo que se ejecuta
cuando se aplica Run a la aplicacin construida. En el entorno de NetBeans, una clase creada, crea
un mtodo que tiene el mismo nombre de la clase a la que se denomina mtodo constructor y toda
programacin hecha en ste mtodo se ejecutar primero antes que el mtodo main. NetBeans
generar un paquete (Package) denominado ejercicios y dentro de ella se mostrar la clase de acceso
pblico AreaTriangulo. El entorno de desarrollo de NetBeans despus de dar click en el botn Finish

Programacin III

queda as:

Ing. Joffre Cartuche C

12

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Agregamos al cdigo de la programacin generada, por debajo del package ejercicios, lo siguiente:
import java.io.*;
import javax.swing.*;
El paquete javax.swing.*; permitir poder crear ingresos y salida de datos a travs de cajas de mensaje.
Agregamos al cdigo en el mtodo Main de la clase AreaTriangulo como se aprecia a continuacin (lo
escrito en azul).
package
ejercicios;
import
java.io.*;
import
javax.swing
.*;
/**
*
* @author Joffre Cartuche
*/
public class AreaTriangulo {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException
{
int base, altura;
double area;
base=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la base: "));
altura=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la
altura")); area=base*altura/2;
JOptionPane.showMessageDialog(null,"El area del triangulo es: "+area);
}
}
En el mtodo main observamos que para leer el dato para la variable base utilizamos el mtodo
showInputDialog de la clase JOptionPane que a su vez pertenece al paquete swing, que mostrar una

Tambin se observa el mtodo showMessageDialog de la clase JOptionPane que permite mostrar en


una caja de mensaje el resultado del clculo del rea.

Ing. Joffre Cartuche C

Programacin III

caja de mensaje para la lectura de datos. De igual manera se trabajar para leer el dato de altura.

13

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Seleccionamos AreaTriangulo en el entorno de desarrollo de NetBeans y luego damos click botn


derecho del Mouse. Se visualiza un men flotante, se elige la opcin Run File y se proceder a ejecutar
el programa.
Cuando la aplicacin es ejecutada se visualizar la siguiente ventana:

Nos pide el ingreso del valor de la base y luego de dar click en el botn de comando Aceptar se
mostrar la siguiente ventana:

Programacin III

Posteriormente se mostrar la ventana del resultado del clculo del rea.

Ing. Joffre Cartuche C

14

UTMACH | Universidad Tcnica de Machala

Programacin Visual

COMPONENTES JLABEL, JTEXTFIELD Y LBUTTON


Objeto de control JLabel
Un objeto de control Jlabel permite dibujar en el formulario una etiqueta, entendindose como
etiqueta una expresin esttica que se quiere colocar. Tambin es usado para mostrar los
resultados de un proceso.
Propiedades ms usadas:
Text: Contiene el valor que se visualizar en el formulario.
Font: Permite establecer el tipo de letra de la expresin a mostrar en el
formulario.
Border: Para establecer el tipo de borde de la etiqueta.
Enabled: Para habilitar o inhabilitar el uso del objeto de control.
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 introduccin de un dato o valor. Este objeto es utilizado para el ingreso de datos.
Propiedades ms usadas:
Text: Contiene el valor o dato introducido en el cuadro de texto. Font:
Permite establecer el tipo de letra del texto en la caja. Border: Para
establecer el tipo de borde del cuadro de texto. Enabled: Para
habilitar o inhabilitar el uso del objeto de control.
Mtodos ms usados:
getText(): Permite obtener el texto introducido en el cuadro de texto.
setText(): Permite colocar un texto en el objeto JTextField.
requestFocus(): permite asignar el cursor al objeto de control
Objeto
JButton

de

control

Un objeto de control JButton permite dibujar en el formulario un objeto que contiene un proceso a
ejecutar. Se utiliza comnmente para llevar a cabo procesos especficos segn la naturaleza de la
aplicacin.
Propiedades ms usadas:
Text: Contiene el valor o dato introducido en el cuadro de texto.
Font: Permite establecer el tipo de letra del texto en la caja.
Enabled: Para habilitar o inhabilitar el uso del objeto de control.

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

Ing. Joffre Cartuche C

Programacin III

Evento ms usado:

15

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Ejercicio 2
Ahora procedamos a desarrollar la misma aplicacin usando como
interface un formulario y los objetos de control antes mencionado.

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

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


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

Ing. Joffre Cartuche C

Programacin III

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

16

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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


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

Es necesario usar AbsoluteLayout para que permita dibujar los objetos de control en el lugar
donde uno quiere en el formulario.
Ahora procedamos a colocar un objeto Jlabel seleccionando de la paleta Swing

Ing. Joffre Cartuche C

Programacin III

Sobre el diseo del formulario damos click botn derecho y seleccionamos


Set Layout y posteriormente AbsoluteLayout.

17

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Controls Label y lo arrastramos hacia el diseo del formulario.

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

Programacin III

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

Ing. Joffre Cartuche C

18

UTMACH | Universidad Tcnica de Machala

Objeto de Control

Programacin Visual

Propiedad

Valor de la Propiedad

JLabel1

Text

BASE:

JLabel2

Text

ALTURA:

JLabel3

Text

El rea del Tringulo es:

JTextField1

Text

(Vaco o limpiar)

JTextField2

Text

(Vaco o limpiar)

JTextField3

Text

(Vaco o limpiar)

JButton1

Text

CALCULAR

JButton2

Text

LIMPIAR

JButton3

Text

CERRAR

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

Programacin III

Es necesario darle un nombre propio a los objetos de control y sobre todo a aquellos que intervienen
en la lgica de la programacin. Seleccionamos el objeto de control JTextField1 y damos click con el
botn derecho del mouse y se visualizar un men flotante y seleccionamos Change Variable Name.

Ing. Joffre Cartuche C

19

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Programacin III

Colocamos como nombre al objeto JtextField1: txtBase

Ing. Joffre Cartuche C

20

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Continuamos con los objetos de control siguientes:

Objeto de Control

Nombre

JTextField2

txtAltura

JTextField3

txtArea

JButton1

btnCalcular

JButton2

btnLimpiar

JButton3

btnCerrar

Ahora procedamos a programar en los botones de comando.


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

Programacin III

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

Ing. Joffre Cartuche C

21

UTMACH | Universidad Tcnica de Machala

Programacin Visual

En el botn LIMPIAR (btnLimpiar) luego de darle doble click escribimos el siguiente cdigo:
(lo escrito en azul).
private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt)
{
txtBase.setText("");
txtAltura.setText("");
txtArea.setText("");
txtBase.requestFocus();
}
Se limpian los cuadros de textos a travs del mtodo setText() y con el mtodo requestFocus() se pasa
el cursor al objeto de control txtArea.
En el botn CERRAR (btnCerrar) luego de darle doble click, escribimos el siguiente cdigo:
(lo escrito en azul)
private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt)
{
dispose();
}
El mtodo dispose() permite descargar el formulario y terminar la ejecucin de la aplicacin.

Programacin III

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


eligimos Run File.

Ing. Joffre Cartuche C

22

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Se muestra el formulario diseado en etapa de ejecucin.

Podemos observar que el formulario sale con los objetos de control cercano a los bordes del
formulario y el mismo formulario se visualiza pegado en la parte superior izquierda de la pantalla del
computador. Vamos a proceder a corregir estos defectos agregando dos lneas de cdigo en el mtodo
constructor de la clase frmAreaTriangulo. (escribe lo que est en azul)
public class frmAreaTriangulo extends javax.swing.JFrame
{
/** Creates new form frmAreaTriangulo */
public frmAreaTriangulo()
{
initComponents();
setSize(400,250);
setLocation(250,250);
}
}
El mtodo setSize() permite establecer el tamao del formulario y el mtodo setLocation() permite
ubicar el formulario dentro de la pantalla. Los mtodos antes mencionados pertenecen al formulario
frmAreaTriabgulo. Otros mtodos del formulario se vern ms adelante.

Programacin III

Procedemos nuevamente a ejecutar el formulario frmAreaTriangulo y se mostrar de la


siguiente manera:

Ing. Joffre Cartuche C

23

UTMACH | Universidad Tcnica de Machala

Programacin Visual

COMPONENTE JRADIOBUTTON Y JCHECKBOX


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

En la figura anterior se observan tres objetos JRadioButton y para poder seleccionar sola una
alternativa se tendr que usar el objeto ButtonGroup que es un elemento que no se llega a dibujar
en el formulario pero permite agrupar objetos JRadioButton y una vez agrupados permite la
seleccin de una opcin cuando la aplicacin se encuentre en ejecucin. En las dos aplicaciones que
veremos ms adelante se har hincapi en este asunto.
Propiedades ms usadas:
Text: Permite establecer la expresin de la opcin.
Font: Permite establecer el tipo de letra en el objeto de control.
Enabled: Para habilitar o inhabilitar el uso del objeto de control.
Mtodo ms usado:
isSelected(): retorna el valor de verdadero si el objeto se encuentra
seleccionado y falso en caso contrario.
Objeto de Control JCheckBox
Un objeto de control JCheckBox permite dibujar en el formulario una opcin que puede ser
seleccionada, es decir, es un objeto que define una opcin o alternativa para ser elegida. La
diferencia con respecto al objeto de control JRadioButton es que si se tienen dos o ms objetos
JCheckBox se puede seleccionar ms de una opcin o simplemente no seleccionar ninguna, por lo que
no son mutuamente excluyentes. Se tiene la siguiente figura:

Programacin III

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

Ing. Joffre Cartuche C

24

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Propiedades ms usadas:
Text: Permite establecer la expresin de la opcin.
Font: Permite establecer el tipo de letra en el objeto de control.
Enabled: Para habilitar o inhabilitar el uso del objeto de control.
Mtodo ms usado:
isSelected(): retorna el valor de verdadero si el objeto se encuentra
seleccionado y falso en caso contrario.

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

Solucin:

Programacin III

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


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

Ing. Joffre Cartuche C

25

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

Programacin III

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


flecha:

Ing. Joffre Cartuche C

26

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Ahora procedemos a disear el formulario, donde se har nfasis en el manejo de los nuevos
objetos de control. No olvidemos que cada vez que usemos un formulario su Layout debe ser
cambiado a Absolute Layout como se aprecia en la siguiente figura:

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

Programacin III

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


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

Ing. Joffre Cartuche C

27

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Lo mismo hacemos para los tipos de artefactos Video y Lnea Blanca. Por lo tanto, los tres objetos
JRadioButton deben pertenecer a buttongroup1. Si pretendemos en estos momentos ejecutar el
formulario podremos seleccionar uno de los tres tipos de artefactos.
A continuacin, agregamos un objeto JCheckBox para indicar la forma de pago que solo puede ser de
dos posibilidades: Contado o Crdito. Seleccionado significa al Contado, no seleccionado significa al
crdito. Agregamos los dems objetos de control que se visualiza en el diseo del formulario y que
fueron estudiados en la sesin anterior. En el diseo del formulario se indica los nombres de los
objetos y debemos recordar que para asignar un nombre a un objeto de control hay que seleccionar al
objeto y dando click con el botn derecho del mouse se procede a seleccionar la opcin Change
Variable Name

Ing. Joffre Cartuche C

Programacin III

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


propiedades, la propiedad buttongroup y luego eligimos buttongroup1.

28

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Procedamos a programar en los botones de comando:

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


{
double costo, dcto=0, incre=0, igv, mpagar;
costo=Double.parseDouble(txtCosto.getText());
if (chkContado.isSelected())
{
}
else
{
if (rbAudio.isSelected())
dcto=costo*0.06;
if(rbVideo.isSelected())
dcto=costo*0.08;
if (rbLinea.isSelected())
dcto=costo*0.05;
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));
}

Ing. Joffre Cartuche C

Programacin III

En el botn de comando CALCULAR (btnCalcular), al darle doble click, escribimos el siguiente


cdigo: (lo escrito en azul)

29

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

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

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

Ing. Joffre Cartuche C

Programacin III

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

30

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

COMPONENTE 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 ejecucin se pueden seleccionar sus tems.
Pero para trabajar con este objeto es necesario usar un objeto de la categora de Swing Containers
denominado JScrollPane. El objeto JScrollPane permite hacer que el objeto JList tenga barra de
desplazamiento que es necesaria cuando el nmero de tems es grande y no puede ser visto a simple
vista en el objeto de control JList. Cabe sealar que los objetos que pertenecen a Swing Containers
sern estudiados con mayor detalle en la segunda unidad de aprendizaje del curso, pero el uso de
Jlist nos obliga utilizar el objeto contenedor JScrollPane.

Propiedades ms usadas:
Model: Permite establecer los tems de la caja de lista.
Font: Permite establecer el tipo de letra en el objeto de control.
Enabled: Para habilitar o inhabilitar el uso del objeto de control.

Mtodos ms usados:

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

Ing. Joffre Cartuche C

Programacin III

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.

31

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

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

Solucin:

Programacin III

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


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

Ing. Joffre Cartuche C

32

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

Programacin III

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

Ing. Joffre Cartuche C

33

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

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


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

Programacin III

En el objeto JScrollPane colocamos un objeto JList y al momento de llevarlo al diseo del formulario se
muestra de la siguiente manera:

Ing. Joffre Cartuche C

34

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Luego queda el objeto JList dentro del objeto JScrollPane.

Programacin III

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


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

Ing. Joffre Cartuche C

35

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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


ventana:

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

Programacin III

Luego dar clic en el botn de comando OK. El diseo del formulario debe
quedar as:

Ing. Joffre Cartuche C

36

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

Programacin III

Adicionalmente pondremos en el diseo del formulario dos botones de comando


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

Ing. Joffre Cartuche C

37

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

Programacin III

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

Ing. Joffre Cartuche C

38

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Para que funcione correctamente la clase DefaultListModel es necesario agregar el paquete import
javax.swing.*; despus del paquete Aplicaciones.
Una vez definidas las variables modelo1 y modelo2, en el mtodo constructor se debe indicar que
la variable modelo1 es para la caja de lista lstCursel y la variable modelo2 es para la caja de lista
lstCos, todo esto se podr hacer con el mtodo setModel(). Tambin hacemos que los botones de
comando Agregar y Eliminar se inhabiliten desde la ejecucin de la aplicacin.

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

Programacin III

En el evento mencionado programa lo siguiente:

Ing. Joffre Cartuche C

39

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

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

Programacin III

Ahora programamos en la caja de lista lstCursel el evento ValueChanged cuando querramos


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

Ing. Joffre Cartuche C

40

UTMACH | Universidad Tcnica de Machala

Programacin Visual

La idea es la misma que se aplic en la programacin sobre el evento ValueChanged del objeto
lstCursos. La diferencia est en que esta vez se habilita el botn de comando Eliminar.
En el botn de comando Eliminar colocamos la siguiente programacin (slo se escribe lo que seala la
llave de color rojo):

Lo novedoso de esta programacin es la presencia del mtodo remove() que elimina un tem de la
lista a travs de la variable objeto modelo1 modelo2 dado el valor del ndice. Al final de la
programacin se vuelve a calcular el costo total de los cursos seleccionados y se inhabilita el botn
de comando Eliminar.
Ahora procedemos a programar en el botn de comando Calcular (slo se escribe lo que seala la
llave de color rojo):

Programacin III

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


seala la llave de color rojo):

Ing. Joffre Cartuche C

41

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

Programacin III

Finalmente programamos en el botn de comando Cerrar:

Ing. Joffre Cartuche C

42

UTMACH | Universidad Tcnica de Machala

Programacin Visual

COMPONENTE JCOMBOBOX
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 botn de comando de despliegue y
luego seleccionar la opcin o tem.

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

Propiedades ms usadas:
Model: Permite establecer los tems de la caja de lista.
Font: Permite establecer el tipo de letra en el objeto de control.
Enabled: Para habilitar o inhabilitar el uso del objeto de control.
getSelectedIndex: Contiene el ndice del tem seleccionado
setSelectedItem: Contiene el tem seleccionado
Mtodos ms usados:
setModel(): Permite vincular una variable objeto de tipo model a un objeto de control
JList.
getItemAt(): Devuelve el tem que est en el ndice que se especifica.
getSelectedIndex(): Contiene el valor del ndice activo o ndice actual del tem seleccionado
de la caja de lista. El ndice es un valor numrico correlativo no visible que va desde 0.
Evento ms usado:

Programacin III

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

Ing. Joffre Cartuche C

43

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Ejercicio 5
Realizar una aplicacin que permita el ingreso del nombre del alumno y poder
seleccionar de una lista desplegadle una categora de los cursos. Al momento de
seleccionar la categora se debe mostrar los cursos con sus respectivos costos en las
cajas de listas (los JList que se muestran al lado izquierdo del diseo del formulario).
Una vez visualizado los cursos el usuario puede seleccionar y agregar en las cajas de
listas (los Jlist que se muestran al lado derecho del diseo del formulario) los cursos
solicitados por el alumno. El pago por el servicio de enseanza se establece de la
siguiente manera:
Existe un pago por matrcula del 80% del costo total (suma de los costos de los
cursos escogidos) siempre y cuando quiera el alumno llevar un solo curso, 60% del
costo total si lleva dos cursos y 50% del costo total si lleva 3 o ms cursos. El costo
total tiene un descuento del 10% si la forma de pago es al contado y un
incremento del 10% si es al crdito.
Existe un pago mensual cuando la forma de pago es al crdito y es equivalente
al costo total incrementado dividido en 4 cuotas.

Solucin:
Usars el mismo proyecto utilizado en la sesin anterior y slo agregars un formulario (Jframe).

Programacin III

Inmediatamente se muestra la siguiente ventana:

Ing. Joffre Cartuche C

44

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Luego dar clic en el botn de comando Finish.


A continuacin se muestra el entorno de desarrollo de NetBeans y no olvides de dar clic en el botn
derecho del mouse sobre el formulario y establece AbsoluteLayout en Set Layout.

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

Programacin III

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. Joffre Cartuche C

45

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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


ventana:

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

Programacin III

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

Ing. Joffre Cartuche C

46

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

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

Una vez definido las 4 variables de memoria del tipo DefaultListModel, en el mtodo constructor se

Ing. Joffre Cartuche C

Programacin III

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

47

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

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


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

Se declara una variable de memoria llamada indice para que almacene el ndice actual del tem

Ing. Joffre Cartuche C

Programacin III

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

48

UTMACH | Universidad Tcnica de Machala

Programacin Visual

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

Y si seleccionas el tem Diseo Grfico se visualizar los cursos con sus respectivos costos en los JList
del lado izquierdo del diseo del formulario.
Salte de la ejecucin y continuemos con la programacin.

Se declara una variable entera llamada ndice, esta variable recibe el valor del ndice del tem

Programacin III

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


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

Ing. Joffre Cartuche C

49

UTMACH | Universidad Tcnica de Machala

Programacin Visual

seleccionado gracias al mtodo getSelectedIndex(). Lo que se quiere es seleccionar el tem de la caja


de lista de lstCostos que tenga el mismo ndice que lstCurOfer, para ello se usa el mtodo
setSelectedIndex(indice) para dar el mismo ndice a la caja de lista lstCostos. Finalmente hacemos
que el botn de comando Agregar se habilite con el mtodo setEnabled()
A continuacin escribe el siguiente cdigo en el botn de comando Agregar
(slo escribe lo que seala la llave de color rojo):

Aqu declaramos dos variables de tipo String llamados curso y costo y las variables enteras total y i. En
la variable curso se almacena el curso seleccionado en la lista lstCurOfer, el mtodo
getSelectionValue() trae consigo el tem seleccionado pero lo trae como objeto y al poner (String)
hacemos que se convierta en cadena de caracteres para que pueda ser asignada a la variable
curso. De igual manera se hace con la variable costo. Para agregar un tem a una caja de lista se usa el
mtodo addElement perteneciente al objeto variable modelo3 o modelo4. Finalmente
inhabilitamos el botn de comando Agregar.
Ahora programa en la caja de lista lstCurEsco en el evento ValueChanged cuando desees seleccionar
un curso para luego eliminarlo (slo escribe lo que seala la llave de color rojo).

La idea es la misma que se aplic en la programacin sobre el evento ValueChanged del objeto
lstCurOfer. La diferencia est en que esta vez se habilita el uso del botn de comando Eliminar.

En esta programacin se hace uso del mtodo remove() que elimina un tem de la lista a travs de la

Ing. Joffre Cartuche C

Programacin III

En el botn de comando eliminar colocas la siguiente programacin (slo escribe lo que seala la
llave de color rojo):

50

UTMACH | Universidad Tcnica de Machala

Programacin Visual

variable objeto modelo3 modelo4 dado el valor del ndice. Al final de la programacin se inhabilita el
botn de comando Eliminar.
Ahora procede a programar en el botn de comando Calcular (slo escribe lo que seala la llave de
color rojo):

La programacin en los botones de comando Borrar y Cerrar es de la misma forma como se aplic en
Ing. Joffre Cartuche C

Programacin III

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

51

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Programacin III

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

Ing. Joffre Cartuche C

52

UTMACH | Universidad Tcnica de Machala

Programacin Visual

Tarea:

Realizar los siguientes ejercicios utilizando procedimientos y funciones.

1) Hacer un programa para ingresar por teclado las cuatro notas de los exmenes parciales
obtenidas por un alumno en una determinada materia y luego emitir el cartel aclaratorio que
corresponda, de acuerdo a las siguientes condiciones:
- Promociona, si obtuvo en los cuatro exmenes nota 7 o ms.
- Rinde examen final, si obtuvo nota 4 o ms en por lo menos tres exmenes.
- Recupera Parciales, si obtuvo nota 4 o ms en por lo menos uno de los exmenes.
- Recursa la materia, si no aprob ningn examen parcial.

2) Una frmula permite determinar si una persona tiene un peso normal, bajo o excedido.
La frmula es la siguiente:
X=Estatura (en cm.)-Peso (en Kg.)
100
El valor de X es un coeficiente que se relaciona con la edad de la persona de la siguiente
manera:
Hasta 20 aos

Ms de 20 hasta
30

Ms de 30 hasta
40

Ms de 40

Peso normal

X entre 0,90 y 1,10 X entre 0,85 y 1,15 X entre 0,80 y 1,10 X entre 0,75 y
1,10

Bajo peso

X ms de 1,10

X ms de 1,15

X ms de 1,10

X ms de 1,10

Excedido

X menos de 0,90

X menos de 0,85

X menos de 0,80

X menos de 0,75

Confeccionar un programa para que a partir del ingreso de los datos: estatura (en cm), peso
(en Kg) y edad (en aos), informe si la persona tiene un peso normal, bajo o excedido.
Por ejemplo si se ingresa Estatura: 180 cm, Peso: 70 kg, Edad: 28, se calcular:

Programacin III

180 70=110 / 100 = 1,1. Como la edad est entre 20 y 30, X = 1,1 es Peso Normal.

Ing. Joffre Cartuche C

53

UTMACH | Universidad Tcnica de Machala

Programacin Visual

3) Hacer un programa para que dado un nmero igual o superior a 2 determine si es perfecto
o no.Un nmero es perfecto cuando es igual a la suma de sus divisores positivos menores que
l.
Por ejemplo el 6, que es igual a la suma de 1+2+3.

4) Hacer un programa para que dado un nmero determinar si s primo o no

Programacin III

Ing. Joffre Cartuche C

54

También podría gustarte