Академический Документы
Профессиональный Документы
Культура Документы
DOCENCIA EN INFORMTICA
PROGRAMACIN EN JAVA
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
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 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.
Programacin Visual
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
Programacin Visual
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:
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:
Programacin III
Ejemplos
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:
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
Programacin Visual
Ejemplo:
- Sintaxis:
int opcion = JOptionPane.showConfirmDialog(this, "Desea seguir ejecutando la aplicacin?",
"Seleccione una opcin", JOptionPane.YES_NO_OPTION);
- Resultado:
- 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.
Programacin Visual
Programacin III
10
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
Programacin III
11
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:
12
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
Programacin III
caja de mensaje para la lectura de datos. De igual manera se trabajar para leer el dato de altura.
13
Programacin Visual
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
14
Programacin Visual
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.
Programacin III
Evento ms usado:
15
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.
Programacin III
Se muestra la ventana New JFrame Form y colocamos en Class Name el nombre del
formulario: frmAreaTriangulo.
16
Programacin Visual
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
Programacin III
17
Programacin Visual
Programacin III
Ahora procedamos a usar a cambiar los valores de las propiedades de los objetos
de control en la ventana de propiedades:
18
Objeto de Control
Programacin Visual
Propiedad
Valor de la Propiedad
JLabel1
Text
BASE:
JLabel2
Text
ALTURA:
JLabel3
Text
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.
19
Programacin Visual
Programacin III
20
Programacin Visual
Objeto de Control
Nombre
JTextField2
txtAltura
JTextField3
txtArea
JButton1
btnCalcular
JButton2
btnLimpiar
JButton3
btnCerrar
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.
21
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
22
Programacin Visual
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
23
Programacin Visual
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.
24
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
25
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
26
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
27
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
Programacin III
28
Programacin Visual
Programacin III
29
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();
}
Programacin III
30
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.
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
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
32
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:
33
Programacin Visual
No olvidemos de dar click botn derecho del mouse sobre el formulario y establecer AbsoluteLayout
en Set Layout.
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:
34
Programacin Visual
Programacin III
35
Programacin Visual
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:
36
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
37
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):
38
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
39
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
40
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
41
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
42
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
43
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
44
Programacin Visual
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
45
Programacin Visual
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.
46
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
Programacin III
Ahora procede a escribir la definicin de las variables del tipo DefaultListModel en la clase
frmCursosExtension.
47
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).
Se declara una variable de memoria llamada indice para que almacene el ndice actual del tem
Programacin III
En el evento mencionado programa lo siguiente(slo escribe lo que seala la llave de color rojo):
48
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
49
Programacin Visual
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
Programacin III
En el botn de comando eliminar colocas la siguiente programacin (slo escribe lo que seala la
llave de color rojo):
50
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
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.
52
Programacin Visual
Tarea:
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.
53
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.
Programacin III
54