0% encontró este documento útil (0 votos)
462 vistas54 páginas

Iterfaz Grafica Java - Swing - 2 PDF

Este documento describe el uso de componentes gráficos en Java como JOptionPane, JLabel, JTextField, JRadioButton, JCheckBox, JList y JComboBox. Explica cómo mostrar cuadros de diálogo con JOptionPane y cómo crear interfaces gráficas con los otros componentes. También incluye ejemplos de código para ilustrar el uso de estos componentes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
462 vistas54 páginas

Iterfaz Grafica Java - Swing - 2 PDF

Este documento describe el uso de componentes gráficos en Java como JOptionPane, JLabel, JTextField, JRadioButton, JCheckBox, JList y JComboBox. Explica cómo mostrar cuadros de diálogo con JOptionPane y cómo crear interfaces gráficas con los otros componentes. También incluye ejemplos de código para ilustrar el uso de estos componentes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 54

UNIVERSIDAD TÉCNICA DE MACHALA

DOCENCIA EN INFORMÁTICA
PROGRAMACIÓN EN JAVA

INTERFAZ GRAFICA SWING


Contenido
INTRODUCCIÓN .............................................................................................................................3
JOptionPane - Cuadros de Diálogos...............................................................................................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 Técnica de Machala Programación Visual

INTRODUCCIÓN

El concepto de programación visual es un poco confuso ya que actualmente se le considera


programación visual a los lenguajes de programación textual que tienen una interfaz gráfica para
poder visualizar lo que uno está desarrollando. Este concepto en programación visual es erróneo ya
que este es aquel que por medio de iconos puedes ir creando programas sin tener un lenguaje
textual atrás de él.

La programación visual (visual programming) se refiere al desarrollo de software donde las


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

La programación visual se define comúnmente como el uso de expresiones visuales (tales como
gráficos, animación o iconos) en el proceso de la programación, pueden ser utilizadas para
formar la sintaxis de los nuevos lenguajes de programación visuales que conducen a los nuevos
paradigmas tales como programación por la demostración; o pueden ser utilizadas en las
presentaciones gráficas del comportamiento o de la estructura de un programa.

El objetivo de la programación visual es mejorar la comprensión de los programas y simplificar la


programación en sí. Más allá, la programación 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 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á compuesto 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.
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.
Programación III

Ing. Joffre Cartuche C 3


UTMACH | Universidad Técnica de Machala Programación 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 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.

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 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.
Programación III

Ing. Joffre Cartuche C 4


UTMACH | Universidad Técnica de Machala Programación Visual

JOptionPane - Cuadros de Diálogos


Un cuadro de diálogo no es más que una ventana que nos permite mostrar mensajes, por ejemplo de
error, de advertencia o de información, o para pedir el ingreso de un valor, además nos permite solicitar
al usuario su intervención para decidir si se realizará o no una acción, como ser los mensajes de
confirmación.
JOptionPane es una clase de la biblioteca Swing (que contiene las librerías de interfaz gráfica de
usuario), para poder usar sus métodos es necesario importarla: import javax.swing.JOptionPane;
Podemos mencionar que JOptionPane tiene básicamente 4 métodos, que definen la manera y la
funcionalidad con la que se mostrará un cuadro de diálogo:

showMessageDialog():

Muestra un cuadro de diálogo al usuario, normalmente de carácter informativo, como mínimo recibe 2
parámetros: el componente padre (que puede ser null) y una cadena de caracteres que corresponde al
mensaje a ser mostrado. También puede recibir como parámetro una cadena que irá como título del
cuadro y el tipo de mensaje a mostrarse (determinado por una constante de la clase JOptionPane).

Parámetros:

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 título del cuadro de diálogo.
int tipoDeMensaje = definido por una constante de la clase JOptionPane

Sintaxis:

JOptionPane.showMessageDialog(this, "Este es un mensaje simple");

Aquí se le envía como componente padre el objecto actual; es interesante esta práctica ya que de esta
manera el formulario se bloqueará mientras esté abierto el cuadro de mensaje, impidiendo que se
efectúen 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 estaría incorrecto).

Resultado:
Programación III

Ing. Joffre Cartuche C 5


UTMACH | Universidad Técnica de Machala Programación 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 más a parte del componente
padre y del mensaje a mostrarse, el tercer parámetro es lo que se situará como título del cuadro de
diálogo y el último parámetro 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.

Ejemplos

Programación III

Ing. Joffre Cartuche C 6


UTMACH | Universidad Técnica de Machala Programación Visual

showOptionDialog():

Podríamos decir que gracias a este método podemos obtener un cuadro de diálogo ajustado a nuestra
necesidad, ya que es totalmente configurable.
Parámetros:

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 título de la ventana.
TipoDeOpcion = es un entero, representado por unas constantes que definen qué opciones
tendrá el cuadro de diálogo.
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 acompañará 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 opción 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");

Retorna un entero que corresponde a la opción seleccionada por el usuario, como sabrán, el valor del
entero corresponde a la posición que ocupa la opción en el array es decir si se selecciona "No" devolverá
1 (uno) , ya que la primera posición de un array es 0 (cero).
- Resultado:
Programación III

Ing. Joffre Cartuche C 7


UTMACH | Universidad Técnica de Machala Programación Visual

showInputDialog():

Sirve para mostrar una ventana que permita ingresar datos (una cadena, texto, números, etc.). Los
parámetros 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 número, se debe realizar una conversión para poder utilizarlo como
tal. Por ejemplo:

int numero = Integer.parseInt(JOptionPane.showInputDialog (this, "Ingrese un número: ",


"showInputDialog",JOptionPane.INFORMATION_MESSAGE));

Pero esto debemos controlar que se escriban sólo número para que no arroje errores en la conversión,
podríamos solucionar tan sólo encerrándolo en un try-catch

showCofirmDialog():

Método que nos sirve para solicitar al usuario la confirmación de una determinada acción. Puede
establecerse los distintos parámetros antes mencionados, como por ejemplo el componente padre,
mensaje, título y tipo de mensaje. Para el tipo de mensaje las constantes posibles son:

YES_NO_OPTION,
YES_NO_CANCEL_OPCION,
YES_OPTION,
NO_OPTION,
CANCEL_OPTION
Programación III

Ing. Joffre Cartuche C 8


UTMACH | Universidad Técnica de Machala Programación Visual

Ejemplo:

- Sintaxis:

int opcion = JOptionPane.showConfirmDialog(this, "Desea seguir ejecutando la aplicación?",


"Seleccione una opción", JOptionPane.YES_NO_OPTION);

- Resultado:

Retorna un entero que corresponde a la opción seleccionada por el usuario.

Hasta aquí, se puede hacer uso de todas las funcionalidades que nos facilita la clase JOptionPane,
además de darle un toque más elegante a nuestro programa.

- Sintaxis:

1 int ax = JOptionPane.showConfirmDialog(null, "Estas en java?");


2 if(ax == JOptionPane.YES_OPTION)
3 JOptionPane.showMessageDialog(null, "Has seleccionado SI.");
4 else if(ax == JOptionPane.NO_OPTION)
5 JOptionPane.showMessageDialog(null, "Has seleccionado NO.");

- Resultado:

En la línea 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 líneas 2 y 4 se usan condicionales para tomar las acciones respectivas de acuerdo a la opción que
haya dado el usuario.

- En las líneas 3 y 5 se muestran mensaje correspondientes a la respectiva opción que haya dado el
usuario.
Programación III

Ing. Joffre Cartuche C 9


UTMACH | Universidad Técnica de Machala Programación Visual

Si seleccionamos SÍ veremos el siguiente cuadro de dialogo:

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

Programación III

Ing. Joffre Cartuche C 10


UTMACH | Universidad Técnica de Machala Programación Visual

Ejercicio 1
A continuación vamos a desarrollar una aplicación sencilla que permita
calcular el área del triángulo 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 opción del menú y luego la opción
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
botón de comando Next.

Programación III

Ing. Joffre Cartuche C 11


UTMACH | Universidad Técnica de Machala Programación Visual

Usamos el botón 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 comúnmente al método Main que es el método que se ejecuta
cuando se aplica Run a la aplicación construida. En el entorno de NetBeans, una clase creada, crea
un método que tiene el mismo nombre de la clase a la que se denomina método constructor y toda
programación hecha en éste método se ejecutará primero antes que el método main. NetBeans
generará un paquete (Package) denominado ejercicios y dentro de ella se mostrará la clase de acceso
público AreaTriangulo. El entorno de desarrollo de NetBeans después de dar click en el botón Finish
queda así:

Programación III

Ing. Joffre Cartuche C 12


UTMACH | Universidad Técnica de Machala Programación Visual

Agregamos al código de la programación 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 través de cajas de mensaje.

Agregamos al código en el método Main de la clase AreaTriangulo como se aprecia a continuación (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 método main observamos que para leer el dato para la variable base utilizamos el método
showInputDialog de la clase JOptionPane que a su vez pertenece al paquete swing, que mostrará una
caja de mensaje para la lectura de datos. De igual manera se trabajará para leer el dato de altura.

También se observa el método showMessageDialog de la clase JOptionPane que permite mostrar en


Programación III

una caja de mensaje el resultado del cálculo del área.

Ing. Joffre Cartuche C 13


UTMACH | Universidad Técnica de Machala Programación Visual

Seleccionamos AreaTriangulo en el entorno de desarrollo de NetBeans y luego damos click botón


derecho del Mouse. Se visualiza un menú flotante, se elige la opción Run File y se procederá a ejecutar
el programa.
Cuando la aplicación es ejecutada se visualizará la siguiente ventana:

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

Posteriormente se mostrará la ventana del resultado del cálculo del área.

Programación III

Ing. Joffre Cartuche C 14


UTMACH | Universidad Técnica de Machala Programación Visual

COMPONENTES JLABEL, JTEXTFIELD Y LBUTTON

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. 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:


Programación III

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

Ing. Joffre Cartuche C 15


UTMACH | Universidad Técnica de Machala Programación Visual

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

Seleccionamos el paquete ejercicios y damos click botón derecho del mouse y elegimos la opción
New y posteriormente JframeForm.

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

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


Programación III

extensión .java denominado frmAreaTriangulo que se almacenará dentro de la carpeta ejercicios y


pertenecerá al paquete ejercicios.

Ing. Joffre Cartuche C 16


UTMACH | Universidad Técnica de Machala Programación Visual

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).

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 control en el lugar
Programación III

donde uno quiere en el formulario.


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

Ing. Joffre Cartuche C 17


UTMACH | Universidad Técnica de Machala Programación Visual

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:
Programación III

Ing. Joffre Cartuche C 18


UTMACH | Universidad Técnica de Machala Programación Visual

Objeto de Control Propiedad Valor de la Propiedad

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 sobre todo 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.
Programación III

Ing. Joffre Cartuche C 19


UTMACH | Universidad Técnica de Machala Programación Visual

Colocamos como nombre al objeto JtextField1: txtBase

Programación III

Ing. Joffre Cartuche C 20


UTMACH | Universidad Técnica de Machala Programación 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 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.getTex
t());
altura=Integer.parseInt(txtAltura.get
Text());
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.
Programación III

Ing. Joffre Cartuche C 21


UTMACH | Universidad Técnica de Machala Programación Visual

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.setText("");
txtAltura.setText("");
txtArea.setText("");
txtBase.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 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 de la aplicación.

Procedemos a ejecutar la aplicación seleccionado frmAreaTriangulo y al dar clic botón derecho


eligimos Run File.

Programación III

Ing. Joffre Cartuche C 22


UTMACH | Universidad Técnica de Machala Programación Visual

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


{

/** 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:
Programación III

Ing. Joffre Cartuche C 23


UTMACH | Universidad Técnica de Machala Programación Visual

COMPONENTE JRADIOBUTTON Y JCHECKBOX

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 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.
Programación III

Ing. Joffre Cartuche C 24


UTMACH | Universidad Técnica de Machala Programación Visual

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.

Ejercicio 3

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.
Programación III

Ing. Joffre Cartuche C 25


UTMACH | Universidad Técnica de Machala Programación Visual

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:
Programación III

Ing. Joffre Cartuche C 26


UTMACH | Universidad Técnica de Machala Programación Visual

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:

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 como se aprecia en el navegador (lado izquierdo
del diseño del formulario).
Programación III

Ing. Joffre Cartuche C 27


UTMACH | Universidad Técnica de Machala Programación Visual

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.
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
Programación III

Ing. Joffre Cartuche C 28


UTMACH | Universidad Técnica de Machala Programación Visual

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())
{
}
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));
Programación III

txtMPagar.setText(String.valueOf(mpagar));
}

Ing. Joffre Cartuche C 29


UTMACH | Universidad Técnica de Machala Programación 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 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(false);
rbVideo.setSelected(false);
rbLinea.setSelected(false);
chkContado.setSelected(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.


Programación III

Luego procedemos a ejecutar la aplicación seleccionando frmAplicacion1 en la página o pestaña

Ing. Joffre Cartuche C 30


UTMACH | Universidad Técnica de Machala Programación Visual

Proyects (se encuentra al lado izquierdo del diseño del formulario) y al dar click botón 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 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.

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.
Programación III

Ing. Joffre Cartuche C 31


UTMACH | Universidad Técnica de Machala Programación Visual

Evento más usado:

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

Ejercicio 4

Realizar 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.

Solución:

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.
Programación III

Ing. Joffre Cartuche C 32


UTMACH | Universidad Técnica de Machala Programación Visual

Seleccionamos el paquete de aplicaciones y al dar click con el botón derecho del mouse elegimos la
opción New y luego JFrameForm.

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

Programación III

Ing. Joffre Cartuche C 33


UTMACH | Universidad Técnica de Machala Programación Visual

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

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:
Programación III

Ing. Joffre Cartuche C 34


UTMACH | Universidad Técnica de Machala Programación Visual

Luego queda el objeto JList dentro del objeto JScrollPane.

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


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

Programación III

Ing. Joffre Cartuche C 35


UTMACH | Universidad Técnica de Machala Programación Visual

Luego de seleccionar el botón 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:

Luego dar clic en el botón de comando OK. El diseño del formulario debe
quedar así:
Programación III

Ing. Joffre Cartuche C 36


UTMACH | Universidad Técnica de Machala Programación Visual

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.

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.
Programación III

Ing. Joffre Cartuche C 37


UTMACH | Universidad Técnica de Machala Programación Visual

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 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):
Programación III

Ing. Joffre Cartuche C 38


UTMACH | Universidad Técnica de Machala Programación Visual

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.

En el evento mencionado programa lo siguiente:


Programación III

Ing. Joffre Cartuche C 39


UTMACH | Universidad Técnica de Machala Programación Visual

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):

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).
Programación III

Ing. Joffre Cartuche C 40


UTMACH | Universidad Técnica de Machala Programación Visual

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):

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):
Programación III

Ing. Joffre Cartuche C 41


UTMACH | Universidad Técnica de Machala Programación Visual

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:

Programación III

Ing. Joffre Cartuche C 42


UTMACH | Universidad Técnica de Machala Programación 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 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
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.


Programación III

Ing. Joffre Cartuche C 43


UTMACH | Universidad Técnica de Machala Programación Visual

Ejercicio 5

Realizar 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.

Solución:

Usarás el mismo proyecto utilizado en la sesión anterior y sólo agregarás un formulario (Jframe).

Inmediatamente se muestra la siguiente ventana:


Programación III

Ing. Joffre Cartuche C 44


UTMACH | Universidad Técnica de Machala Programación Visual

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.

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
Programación III

Ing. Joffre Cartuche C 45


UTMACH | Universidad Técnica de Machala Programación Visual

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:

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.

Programación III

Ing. Joffre Cartuche C 46


UTMACH | Universidad Técnica de Machala Programación Visual

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:

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.
Programación III

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

Ing. Joffre Cartuche C 47


UTMACH | Universidad Técnica de Machala Programación 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. 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.

En el evento mencionado programa lo siguiente(sólo escribe lo que señala la llave de color rojo):

Programación III

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

Ing. Joffre Cartuche C 48


UTMACH | Universidad Técnica de Machala Programación Visual

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 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.
Salte de la ejecución y continuemos con la programación.
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:
Programación III

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

Ing. Joffre Cartuche C 49


UTMACH | Universidad Técnica de Machala Programación Visual

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):

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):
Programación III

En esta programación se hace uso del método remove() que elimina un ítem de la lista a través de la

Ing. Joffre Cartuche C 50


UTMACH | Universidad Técnica de Machala Programación Visual

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):

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 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.
Programación III

La programación en los botones de comando Borrar y Cerrar es de la misma forma como se aplicó en

Ing. Joffre Cartuche C 51


UTMACH | Universidad Técnica de Machala Programación Visual

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.

Programación III

Ing. Joffre Cartuche C 52


UTMACH | Universidad Técnica de Machala Programación Visual

Tarea:

Realizar los siguientes ejercicios utilizando procedimientos y funciones.

1) Hacer un programa para ingresar por teclado las cuatro notas de los exámenes 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 exámenes nota 7 o más.

- “Rinde examen final”, si obtuvo nota 4 o más en por lo menos tres exámenes.

- “Recupera Parciales”, si obtuvo nota 4 o más en por lo menos uno de los exámenes.

- “Recursa la materia”, si no aprobó ningún examen parcial.

2) Una fórmula permite determinar si una persona tiene un peso normal, bajo o excedido.
La fórmula 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 años Más de 20 hasta Más de 30 hasta Más de 40


30 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 más de 1,10 X más de 1,15 X más de 1,10 X más 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 años), 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á:

180 – 70=110 / 100 = 1,1. Como la edad está entre 20 y 30, X = 1,1 es Peso Normal.
Programación III

Ing. Joffre Cartuche C 53


UTMACH | Universidad Técnica de Machala Programación Visual

3) Hacer un programa para que dado un número igual o superior a 2 determine si es perfecto
o no.Un número 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 número determinar si s primo o no


.

Programación III

Ing. Joffre Cartuche C 54

También podría gustarte