0% encontró este documento útil (0 votos)
80 vistas55 páginas

Swing P1

Este documento describe los componentes JRadioButton y JCheckBox en Java Swing. Explica que JRadioButton permite seleccionar una opción de un grupo mutuamente excluyente, mientras que JCheckBox permite seleccionar múltiples opciones. Luego presenta un ejercicio para construir una aplicación que calcule los costos de artefactos según el tipo y forma de pago usando 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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
80 vistas55 páginas

Swing P1

Este documento describe los componentes JRadioButton y JCheckBox en Java Swing. Explica que JRadioButton permite seleccionar una opción de un grupo mutuamente excluyente, mientras que JCheckBox permite seleccionar múltiples opciones. Luego presenta un ejercicio para construir una aplicación que calcule los costos de artefactos según el tipo y forma de pago usando 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 DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 55

UNIVERSIDAD TÉCNICA DE MACHALA

DOCENCIA EN INFORMÁTICA

PROGRAMACIÓN EN JAVA

Windows Menudget Menuwidget!


Tootballtuttan Teolbuche Fox

Swing!
Panel
Celentedtal
other

tem2
RadioButton Rad olluilun
Un checkedched By ChrdedChad Box
4

IIIIIIIIIII

Java Swing
INTERFAZ GRAFICA SWING
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:

Audio
Video
Linea Blanca

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:

Contado

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
24

Ing. Joffre Cartuche C


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

25

Ing. Joffre Cartuche C


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

New Java Application

Sleps
Name du Lulaliunt

1.
Chooso Project Namc and Location
Project Name:
Aplcaciones

E:\Prallilas
| | Bruwe...
Prujell Olaliuu: Project Folder:
C:\Practicas Aplicaciones

M Set as Main Project


Create Main Cass
ejemplos. Aplicacion1

< Back
mesls
Elish
Cancel

Seleccionamos la carpeta de ejemplos, damos


click con el botón derecho del mouse y elegimos la
opción

New y posteriormente JframeForm.


Projects X Files EŚ Aplicaciones
E Source Packages
Runtime
Welcome x
2 Aplicacic

3 ejemplNew

#
Test Packa Libraries Test Librari
Compile Package F9. CVS Find...
Ctrl+F
Cut
Ctrl+x Copy
Ctrl+C Paste
Ctrl+V Delete
Suprimir
if File/Folder...
@ Java Class...
Java Package... Java Interface... Panel Form...

JFrame Form... 2 Web Service Client...


ITH=ua=F

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


nombre de la clase indicado por la flecha:

Now Jl rame form

Slegs
Neme and locelim

I. ose fie Type 2. Nane and Locali

wwe frapkcsor:
Cliccles

Location Course Pacsege Pedag: / jamalos


Created Alb:
A Pracolcadiaplicadores cremalopraksadonljava
<Bade
concet
19

Nomoro de la cso: frmplicas onl


LLEÇO Car clis or Finist
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:

Welcome * Source Design


Aplicacion.java * frmAplicacion1.java *
E S PELL + $

Preview Design Events

Selecciona AbsoluteLayout
Alion Anchor Auto Resting

Set Default Size Soace Around Component... Design This Container Set Layout Customize Layout Add
From Palette Change Order...
Free Design
Copy
Ctrl+C
AbsoluteLayout Border Layout Boxlayout CardLayout FlowLayout Grid Layout GridLayout Null Layout
CLAV

Properties

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.

Runtime

Bienvenida x A Aplicacion1.java x .frmAplicacion1.java x Fuente Diseño 8


WALL
| Proyectos O X Files
- Aplicaciones
& Packages de Fuentes
- ejemplos
- Aplicacion1.java
+- frmAplicacion1.java +- Packages de Test
Librerias Test Libraries
COSTO DEL ARTEFACTO:

Tipos de Artefactos
Audio
Video
Linea Blanca
De la paleta Swing Controls 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

Runtime

Bienvenida Aplicacion1.java x afrmAplicacion.java * x Fuente Diseño 39 24L


#$
I Proyectos 0x Files 2-3 Aplicaciones
- Packages de Fuentes
6-0 ejemplos
- Aplicacion1.java
- frmAplicacion1.java - Packages de Test + Librerias 1- Test Libraries
COSTO DEL ARTEFACTO
Tipos de Artefactos
Audio
Video
Linea Blanca

Navegador
Inspector É Formulario FrmAplicacion1 - Otros Componentes
E buttonGroupi (ButtonGroup] - [Frame]
of AbsoluteLayout
How jtabeli (label] FOJTextFieldi [JTextField]
kjLabel3 [JLabel] --- RadioButtoni (JRadioButton]
- RadioButton2 [RadioButton]

Aquí se observa la existencia de un buttonGroup1


Seleccionamos el objeto JRadioButton referido a Audio y
luego buscamos en la ventana de propiedades, la propiedad
buttongroup y luego eligimos buttongroup1.

Propiedades Eventos
Código E Propiedades action
null background
[212,208,200 buttonGroup buttonGroup1 font
<nada>
buttonGroup1 buttonGroup Group of buttons in which this button be

Selecciona buttonGroup
Luego 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

Txtcasto

rbAudio rbdeo rbLinea

Linea Blanca
chkContado
COSTO DEL ARTEFACTO: Tipos de Artefactos
Audio
Video Forma de pago Contado

CALCULART BORRAR
btncalcular btnBorrar btnCarrar

CERRAR T
Descuento:

Incremento
txtDcto txtincre txtigv txtMP agar
Morto de IGV:

Morto a Pagar

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 btnCalcularAction Performed(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)); txtlgv.setText(String.valueOf(igv));
txtMPagar.setText(String.valueOf(mpagar));
Programación III
29

Ing. Joffre Cartuche C


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, txtlgv 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 btnBorrarAction Performed/java.awt.event.ActionEvent evt)

txtCosto.setText(""); txtDcto.setText(""); txtIncre.setText(""); txtlgv.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 btnCerrarAction Performed(java.awt.event.Action Event evt)

dispose();

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


aplicación.

Luego procedemos a ejecutar la aplicación seleccionando frmAplicacion1 en la


página o pestaña
Programación III
30

Ing. Joffre Cartuche C


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 (items). 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 Scroll Pane.

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.

- DX
Cursos ofrecidos: Visual Basic Power Builder Visual Java Aplicaciones Web Internet Diseño
Gráfico
stem seleccionado

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

Cursos ofrecidos: 0 Visual Basic


Power Builder 2 Visual Java
Aplicaciones Web Internet Diseño Gráfico
item seleccionado

Indice activo o indice actual

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

Aplicaciones - NetBeans IDE 6.0

Eat Yew Margate Source Refactor Puld Bin Bofle yersaning Tools Yndon Hub FX
Band audi var tiga . TD is -
Start Pap * EP Aplicaciones Aplicaciones - Source Pedaces HE-10 Ees
Aplicaciones.java
T To change -his template. abecse ole | Ten
# and open the template in the editor. - Tes Packages
te ubranies
Test Libraries
Package ejercicios:

public class Aplicaciones

pardi, ale che diurud 1111e cuenta

public static void Min(String[] args)


100 code application logic RELE

Seleccionamos el paquete de aplicaciones y al dar


click con el botón derecho del mouse elegimos la
opción New y luego JFrameForm.
Aplicaciones - NetBeans IDE 6.0 File Edit View Navigate Source Refactor
Build
Run
Profle
Versioning
Tools Window

X
93
@
Kdefault config>
<default config>

T
Z
| Services
Start Poge
Aplica
I Projects 4 X Files E Aplicaciones
09 Source Packages
Djercicio
New # Test Packag
Find... Libreries
Cut Test Librarie
Ctrl+F

Ctrl+C Ctrl
Paste
2 Java Class...
Java Package... Java Interface... JPanel Fom..
Frame Form... Entity Class... Entity Classes from Databese...
Web Service Cent... y other...
Suprimir
Delete Refactor

Reverse Engineer...

Compile Package Local History


F9

Tools

A continuación se muestra la ventana New Jframe


Form que debe quedar así:

New JFrame Form

Steps
Name and Location
1. Choose Fle Type 2. Narne and Location
dlass Natre: F
oursos

Project
Aplicaciones

Source Packages
Location:
Package:
olenciclos

Created Ale
Ejercicios aplicadones sic clacidosifier
ursos.jave

<Back
wext >
Finish
Cancel

Indicar como nombre de clase: frinCursos


Luego dar clic en Finish
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

Aplicacioncs NetBcgns IDE 6.0 Filc Ecit Vicw Novgato Source roroctor 441X
Euid Run
Profile Versionng <cefault config>
Tools Wiscow Help T

N
Se vices
20 Aplica-innes java x Entrecursos java x Source Design & S H L
Use the connection Moce button ur the bcbat) to establish a connection betwe
Projects
X Files E-9 Aplirarinnes
Source Packages ejercicos
Aplicaciones Java
ruCursus.java Test Pacseges
Lib’arics # Test Libraries
Preview Design Bind Events

Free Design
Set Layout

Set Dəfault Sze


Customize Layout... Add From Palat:e Desen This Container
AbscluzeLayout Border-ayout BoxLayout CadLayout Flow-ayout GridBaqlavout GridLayout Nul Laycut
Change Order
LIEL
COPY Paste

Gisteme Gade

JFramel - Navigaon
| Inspector
Properties
SOUTOE
Design

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.
ge - Aplicaciones jeva * trmcursos.java* *
Palette Source Design & ELE C T *
E Swing Containers
Fanel
Tabbed Pane 9 Place the component at [20, 90].
JL Split Pane
Scroll Pane Too Bar
Desktop Pane
Internal Frarre Layered Pane ALUMNO:
E Swing Controls ke Label
Ok Button Seleccionar Cursos
on Toggle Button G- Check Box 6- Rado Button 8-Button Group E Combo Box
Ei List
Text Field
Text Area di Scroll Bar
Slider Progress Bar Dr Formatted Fiel 1. Password Fied ID Spiter
Separator
T Text Pane L) Editor Pane
CTree Tabe

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
34

Ing. Joffre Cartuche C


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

5
..ge
Source
Aplicaciones jave x ErmCursos ava!
x Desiune
S L LLS
o
$

9 Add the component into the scrolfane.


Tabbed Fane Hi Soroll Pane
Desktop Pene Layered Pane
ALUMNO:
Palette 6 Swing Containers
Panel

Split Pane a Tool Bar


Internal Frame Swing Controls Wo Label ON Toggle Button
-Rado Button D Combo Box
Text Field Scroll Bar

Progress Bar 10 Password Field

Separator Editur Panie Table


Lil Button
- Chock Box & Button Group
Seleccionat CUTSUS
Item 1 Iren 2 Item 3 Item 4 Iter 5
Text Area Slider
Formatted Field E) Spinner T Text Pane Dil Tree

Luego queda el objeto JList dentro del objeto


JScrollpane.

#- =- # @
frmCursos.java Test Packages Lbraries Test Libraries
ALUMNO

Seleccionar cursos

Item 1 Item 2
Se observa que JList se incrusto en JScrollPane
Item 4 IL 5
Inspector 5 Form frmcursos E Other Components - (JFrame]
01 Absolutelyout
be Laball[labell D jTextfieldi [Textfeld] - Labela falabell - Barolpanel (ScrolPane)
Listi [List]

En el panel Inspector se observa Jlist1 pertenece a


JScrollPane1

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.

Leyred Pane
ALLMU:
Inter Fan l Swing Controls
be

Il Togs: buron
Recha Butter
chedJo Buta Group

14

Tetes
der
let Field DE Icd Ba
Progress Pasword Red
ator Finan
ble Swing Menik
H
I Test Fane

Ending
Event
Goda
Properties
marra tedyound border corporer
t Pound model
selection! lcuifp Teal
DAMU
(255,255,2551 Duc boncer) crones Tava 11 Play
19.0,01 Den hain 2, Tram 3 MLLTIPLE_INTERVAL

Seleccionar el botón de comando de model


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:

List1 [1 ist] - model

Set juisti's model property usng: string array editor


1. Eliminamos cada uno de estos ítems, Seleccionando dando clic en Remove
Item:

Update

Pemove
Item List Item 1 Item 2 Item 3 Item 4 Item 5
2. Escribir el nombre del curso y luego dar clic en el botón de comando Add
DO

OK
Reset to default
Cancel

Ingresemos los nombres de los cursos tal como se muestra en la


siguiente ventana:

¡List1 [JList] - model

Set Listi's model property using: String array editor

Item:
Internet
Add

Update
Item List Visual Basic Power Builder Visual Java Aplicaciones Web Internet
Remove

DOWE

OK
Reset to default
Cancel

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

ALUMNO:

Seleccionar Cursos

Visual Basic Power Builder Visual Java Aplicaciones Web Internet

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.
LofrmCursos Java Test Packages Libraries Test Libraries
ALUMNO:
-
Seleccionar Oursos Visual Basic Power Builder Visual lava Aplicaciones Web Internet
tem i Item 2 Item 3 Item + Item 5

6#
FormfrmCursos
Other Components [Frame] 09 AbsoluteLayout
Labell [Ilabel] - ¡TextFieldi [JTextField]
Label2 (Label] B . Scrollpanel [Scrollpane]
Ligi Aist] EHScroPane2 [Scrolpane]

ALUMNO:

Seleccionar Cursos Visual Basic Power Builder Visual Java Aplicaciones Web Internet
160 150
1

140

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
-+
ta
E rmCursos.java Test Pakages Litreries Test Libraries
ALUMNC:
E

Cursos Se eccionados
Agregar
Seleccionar Cursos Visuel Basic Poner Bulder visuel Java Aplicaciones Wet Internet
160
Eliminar
170
| Inspector
9 Form timorgos
Other Components [Frame]
AbsoluteLayout
ilebell [Label] O jTextField [JTextField] Hajlahe2 [11 anel]
- ScrolPolet (35uPa
List[List S-H jScrolPa 2 (5crolpo
LEUst [LE
Buttoni (Jautton] 0 jButton2 [JEutton]
iLebe3 [JLabel]
ScrolPane3 [Eccle] 1
El List3 [215]
iScrolPanet[15crolpanel E Ust [list]

Posteriormente agregamos las formas de pago con


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

ALUMNO:
txtAlu Isttursos IstCoSTUS
Seleccionar Cursos
Cursos Seleccionados
btnAgregar bnElimuinar
IstCursel Istos
Visual Basic Power Builder Visual Java Aplicaciones Web Internet
Eliminar
| BCCI ricre

txtTotal

Forma de Pago
Contadec
Total:
bunCalcular btnLimpiar btnCerrar

CALCULAR +
LIMPIAR
CERRAR +
txtDesc Lxlnure txtMonto
Descuento:
+ Incremento:
TOT Ementa:
Uno a Pagar:

Ahora bien, si observamos en el diseño del formulario


de las cuatros objetos Jlist, dos de ellos ya tienen
ítems como lo son IstCursos y IstCostos. En cambio, los
objetos IstCursel y IstCos 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):

public class frmCursos extends


javax.swing.JFrame {
// definir un modelo que es necesario para manejo
de listas
private DefaultListModel modelol=new
DefaultListModel(); private DefaultListModel modelo2=new
DefaultListModel();
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 IstCursel y la variable modelo2 es
para la caja de lista IstCos, 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.
public frmCursos () {
initComponents(): 1stCursel.setModel (modelol);
1stCos.setModel (modelo2);
Agrega éstas cuatro btnAgregar.setEnabled(false); 1
líneas de código btnEliminar.setEnabled(false);

Bien, ahora debemos programar sobre el objeto IsrCursos,


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 IstCursos llamado
ValueChanged perteneciente a ListSelection.

ALUMNO:

Seleccionar Cursos
Cursos Seleccionados
Viajal Basic
180
Agregar
PcI
Change Variable Name ... Bind Events
In

Auto Resina

Set Default Size Space Around Component... Endose Ir


Ancestor Component Container Focus Hierarchy Hierarchy Bounds Input Method Кеу ListSelection Mouse
MouseMotion MouseWheel PropertyChange VetoableChange
Desc
valueChanged
Design Parent

Move Up Move Down

Cut Copy Duplicate Delete


Ctrl+x Ctrl+C Ctrl+D Suprimir

Customize Code

Properties

En el evento mencionado programa lo siguiente:

private void IstCursosValueChanged (javax.swing.event.


ListSelectionEvent evt) { // TODO add your handling code here:
int indice; indice-1stCursos.getSelectedIndex(): Agrega estas cuatro
1stCostos.setSelectedIndex(indice); lineas de codigo
btnAgregaz.setEnabled(true);
Programación III

Ing. Joffre Cartuche C


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

Se declara una variable entera llamada indice, esta variable recibe el


valor del índice del item seleccionado gracias al método getSelectedIndex().
Por ejemplo, si de la caja de lista IstCursos estuviera seleccionado Power
Builder, éste método devolvería el valor de 1. El valor o 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 IstCostos que tenga el mismo
índice que IstCursos, para ello se usa el método setSelectedIndex(indice)
para dar el mismo índice a la caja de lista IstCostos. 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):

private void btnAgregarActionPerformed (java.awt.event. ActionEvent evt) { //


TODO add your handling code here:
String curso, costo; int cuenta, i, total=0; curso= (String)
1stCur303.getSelectedValue(); costo= (string) 1stCostos.getSelectedValue();
modelol.addElement(curso); modelo2.addElement(costo); cuenta-modelo2.size();
for(i=0;i<cuenta;i++)
total=total+Integer.parseInt(String) modelo2.element At (i)); txtTotal.setText
(String.valuelf (total)); btnAgregar.setEnabled(false):

Aquí declaramos dos variables de tipo String llamados curso y costo y las
variables enteras cuenta, iy total. En la variable curso se almacena el curso
seleccionado en la lista IstCursos, el método getSelection Value() 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 IstCos pero a través de la variable objeto modelo 2. Con la
sentencia repetitiva for se busca extraer cada uno de los ítems de la caja
de lista IstCos 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 IstCursel el evento ValueChanged


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

private void 1st CurselValueChanged (javax.swing. event. ListSelectionEvent evt)


{ }} TODO add your handling code here:
int indice; indice=lstCursel.getSelectedIndex(); 1stCos.setSelectedIndex(indice);
btnEliminar.setEnabled(true);
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 IstCursos. 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):

private void btnEliminar ActionPerformed (java.awt.event. ActionEvent evt) { // TODO


add your handling code here:
int indice, cuenta, i, total=0; indice=lstCursel.getSelectedIndex();
modelol.remove(indice); modelo2.remove(indice); cuenta-modelo2.size(): for (i=0;
iccuenta;14)
total=total+Integer.parseInt((String)modelo2.elementAt (1)); txtTotal.setText
(String.valueOf (total)): btnEliminar.setEnabled(false):

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):
private void btnCalcularActionPerformed (java. aut.event. ActionEvent evt) { //
TODO add your handling code here:
double desc=0, incre=0, monto; int total; total-
Integer.parseInt(txtTotal.getText()); if (LbCon. isSelected())
desc=total*0.05; if (bCre. isSelected())
incre=total*0.07; monto-total-desc+incre
txtDesc.setText(String. valueOf (desc)); txtIncre.setText(String.valueOf (incre));
txtMonto.setText (String.valueof (monto)):

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

private void btnLimpiarActionPerformed (java.awt.event. ActionEvent evt) { //


TODO add your handling code here:
txtAlu.setText(""); modelol.clear(1 : modelo2.clear();
txtTotal.setText(""); txtDesc.setText(""): txtIncre.setText("");
ExtMonto.setText(""); 1stCursos.setSelectedIndex(5);
1stCostos.setSelectedIndex(5): txtAlu.request Focus();

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 IstCursel y IstCos. 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 COMBOBOX

Objeto de Control JComboBox

Un objeto de control JComboBox permite dibujar en el


formulario una lista desplegadle, la cual contiene opciones (items).
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.

Carrera Profesi...
Medicina General
1
Botón de despliegue

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

items
Medicina General Medicina General Psicología Ingeniería de Sistemas Contabilidad
Administración Turismo Odontologia
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 setSelectedltem: Contiene el ítem
seleccionado

Métodos más usados:

setModel(): Permite vincular una variable objeto de tipo model a un objeto


de control JList. getltemAt(): Devuelve el ítem que está en el índice
que se especifica. getSelectedIndex(): Contiene el valor del índice activo
o índice actual del item 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
43

Ing. Joffre Cartuche C


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

Pro... 0 X Files IRuntime Bienvenida x & Main.java x @ frmCurse Et


Aplicaciones
Fuente Diseño
0 - Packages de Fuentes - aplicaciones
Nuevo -Main.ja
File/Folder... #-B frmCur
Compilar Package F9 Formulario JFrame... - Packages de Te
CVS
Java Class... - Librerias Find...
Ctrl+F
Java Package... Test Libraries Cortar
Ctrl+x
a Java Interface. Copiar
Ctrl+C
Formulario JPanel... Pegar
Cliente de servicio web... | Navegador
Borrar
Suprimir
Juthor Usuario Refactorizar Herramientas
> lc class frmCursos extends

Inmediatamente se muestra la siguiente ventana:

Nombre y Ubicación

Nombre de Clase: frmCursosExtension

Proyecto:
Aplicaciones

Ubicación:
Packages de Fuentes

Package:
aplicaciones

Archivo Creado: cuments and Settings\Usuario\Aplicaciones\src\aplicaciones\frmCursosExtension.java

Colocar cómo nombre de clase frmCursosExtension


Programación III
44

Ing. Joffre Cartuche C


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.

6-
Fuente Dicato
R2 S PIEEE
8
Aplicaciones
Packages de Fuentes C-O aplicaciones
Main.java -2 frmCursos.java -- FmcursosExtension.java | Packages de Test
Librerias Test Libraries
Vista Previa del Diseño Eventos

Ardele

0x
Naverador -[F... Inspector Š Formulario frmCursosExtension
Otros componentes 4-5 [Free]
Mismo Tamaria Definir Tamaño Por Defecto E al lado del componente Diseñar Este
Contenedor Set Layout Personalizar layout... Agregar desde Paleta Cambiar Orden... Copiar
Diseño Libre AbsoluteLayout Bordert ayout BoxLayout Cardiayout FlowLayout Grid aglayout
Ctrl+C

Propiedades

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.

ALUMNO
JComboBox1
Categoria de Cursos Hem 1

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

ALUMNO

Categoria de Cursos
tem 1
Comboboxi [KomboBox] - Prope... D Propiedades Eventos
Código B Propiedades background 255,255,255_ editable font
MS Sans Serif 11 foreground (0,0,0) maximumRowCount 8 model
Item 1, Item 2.... selectedIndex selecteditem Item 1 toolTipText ElOtros Propiedades
UiClassID ComboBorut action
null actionCommand comboBoxcha.... alignment
null

0.5
Programación III

45

Ing. Joffre Cartuche C


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:
ComboBox1[ComboBox] model

Selecoone Modor Combobox Mode Editor


1. Eliminamos cada uno de los tems con
el boton de comando Remove
Item:

Lista de Items

Itam 2

FLETISME
utem 3
2. Luego agregas las categorias de cursos

Avanzado...

Reset to default
Cancelar

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:

ALUMNO:
Categoria de Cursos:
<Seleccionar>

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.

ALLIMNO:

Categoría de Cursos:
<Seleccionar>

Cursos Ofertados
Costo
Cursos Escogidos Costo
Agregar

Eliminar
Programación III
46
Ing. Joffre Cartuche C
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:

txtAlu IstCurOfer IstCostos

cboCategorias
Categoría de Cursos
Seleccionar
btnAgregar btnEliminar

Cursos Ofertados
Losto
Cursos Escogidos costo
IstCurEsco
Agregor
IstCos

Eliminar
cboFPago btnCalcular btnBorrar btnCerrar

Forma de pago.
Seleccionar
txtmat txtcTotal txtPMen
CALCULAR
BORRAR
CERRAR

Matricula
Costo-ata
Pago Mensual
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.

Escribe esta linea de codigo


package aplicaciones; import javax.swing.;

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


DefaultListModel en la clase frmCursosExtension.
public class foncursos xtension extends javax.swing. Jirane
// crear un nodel para cada uno de las 4 listas private
DefaultListModel modelol=new DefaultListModel(); private
DefaultlistNodel modelo2=new DefaultListModel();
Agrega ėstas cuatro private DefaultlistModel modelo3=new
DefaultListModel();
lineas de código private DefaultlistModel modelo4=new DefaultListModel();

Una vez definido las 4 variables de memoria del tipo


DefaultListModel, en el método constructor se
Programación III
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 IstCurOfer, la variable modelo 2 para la caja de lista
IstCostos, la variable modelo3 es para la caja de lista
IstCurEsco y la variable modelo4 es para la caja de lista
IstCos. 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).

public fimCursosExtension()

ALUMNO

Categoría de Cursos
initComponents(): 1stCurOfer.setModel (modelol);
1stCostos.setModel (modelo2); 1stCurEsco.setModel
(modelo3); lstCos.setModel (modelo4); btnAgregar.setEnabled(false);
btnEliminar.setEnabled(false); setSize (450,400); setLocation
(250,250);
Oursos Ofertados
Costo
action Performed
Dicerin Grátira
Cambiar Nombre de Variable ... Eventos Area Andeje Roomersiamento
Autoradio Mismo Temalo Defrir Tamaro Puy befecti
Ancestor Componert Container Focus Herachy

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


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

En el evento mencionado programa lo siguiente(sólo


escribe lo que señala la llave de color rojo):
private void choCategoriasActionPerformed (java.avt. event. ActionEvent
evt) {
int indice: indice=cboCategorias.getSelectedIndex(): svitch (indice)

case 0:
modelol.clear(): modelo2.clear()
break; case 1:
modelol.clear(); modelo2.clear(); modelol.addElement("Corel Drau");
modelo2.addElement("180"); modelol.addElement("Photo Shop"); modelo2.addElement("170"):
break; case 2:
modelol.clear() modelo2.clear(); modelol.addElement("Diseño con HTML");
modelo2.addElement("100"): modelol.addElement("JavaScript"); modelo2.addElement("120"):
modelol.addElement("PHP Y MYSOL"); model02.addElement("180"); modelol.addElement("ASP .Net):
modelo2.addElement("180");
break; case 3:
modelol.clear()modelo2.clear()
sodelol.addElement("Word"); modelo2.addElement("120"); modelol.addElement("Excel"):
modelo2.addElement("130"); modelol.addElement("Pouée Point"); modelo2.addElement("100");
modelol.addElement("Visio"); nodelo2.addElement("110"):
break; case 4:
modelol.addElenent ("Visual Basic .Net");
modelol.clear(); modeloz.clear():
modelo2.addElement("240"); modelol.addElement("Visual Java");
modelo2.addElement("290"); modelol.addElement("Power Builder"), modelo2.ad Element ("230");
modelol.addElement("Visual C# .Net"): modelo2.addElement("220");
break; case 5:
modelol.clear(); modelo2.clear(); modelol.addElement("Windows Vista"); nodelo2.ad
Element ("160"); modelol.addElement("Linux"); sodelo2.addElement("180"); break.

Se declara una variable de memoria llamada indice para que


almacene el índice actual del item
Programación III
48

Ing. Joffre Cartuche C


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

seleccionado del objeto ComboBox llamado cboCategorias.


Sabiendo el valor del indice 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 IstCurOfer y
IstCostos 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 IstCurOfer y IstCostos 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 IstCurOfer y IstCostos. De igual forma se
trabaja para los demás ítems del objeto ComboBox llamado
cboCategorias. Si en estos momentos procedes a ejecutar la
aplicación se mostrará el formulario de la siguiente manera:

ALUMNO:
LUMNO:

ategoría de Cursos: Diseño Gráfico

Cursos Escogidoscosto
Categoría de Cursos: <Seleccionar>
<Seleccionar Cursos Ofertados Costo Diseño Gráfico
Diseño Web Ofimática Lenguajes de Programación Sistemas Operativos
Costo os Ofertados Costo
Draw
180
Agregar
Shop
170

Eliminar

Forma de Pago: <Seleccion... v


Forma de Pago: <Seleccion... →

CALCULAR
BORRAR
CERRAR
CALCULAR
BORRAR
CERRAR

Matricula
Costo Total Pago Mensual
Matricula
Costo Total Pago Mensual
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 IstCurOfer 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 IstCurOfer y
dando clic botón derecho del mouse se muestra un menú flotante. En el
evento mencionado programa lo siguiente:

private void 1stCurOferValueChanged


(javax.swing.event.ListSelectionEvent evt) {
int indice=lstCurOfer.getSelectedIndex(): 1
1stCostos.setSelectedIndex(indice);
Agrega éstas 3 lineas de código btnágregar.setEnabled(true);

Se declara una variable entera llamada índice, esta variable recibe el valor
del índice del ítem
Programación III

Ing. Joffre Cartuche C


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 IstCostos que tenga el mismo
índice que IstCurOfer, para ello se usa el método
setSelectedIndex(indice) para dar el mismo índice a la caja de lista
IstCostos. 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):

private void btnAgregarActionPerformed (java.awt.event. ActionEvent evt) {


String curso, costo; int total, i; curso=
(String)lstCurOfer.getSelectedValue(); costo= (String) lstCostos.getSelectedValue();
modelo3.addElement (curso); modelo4.addElement (costo);
btnAgregar.setEnabled(false);

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 IstCurOfer, el método
getSelection Value() 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 IstCurEsco en el evento
ValueChanged cuando desees seleccionar un curso para luego eliminarlo
(sólo escribe lo que señala la llave de color rojo).

private void lstCurEscoValueChanged (javax.swing. event.ListSelectionEvent evt) {


cint indice=lstCurEsco.getSelectedIndex(); 31stCos.setSelectedIndex(indice);
VotnEliminar.setEnabled(true);

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


ValueChanged del objeto IstCurOfer. 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):

private void btnEliminarActionPerformed (java. aut. event. ActionEvent evt) {


int indice=lstCurEsco.getSelectedIndex(); modelo3.remove (indice); modelo4.remove (indice);
btnEliminar.setEnabled(false);
En esta programación se hace uso del método remove() que elimina un ítem
de la lista a través de la
Programación III

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

private void btnCalcularActionPerformed (Java.awt.event. ActionEvent evt) {


int cuenta modelo3.size(), 1; float mat=0, ctotal=0, pmen=0; for (1=0;i<cuenta;i++)

ctotal=ctotal+Float.parseFloat((String)modelo4.elementat (1));

if (ctotal==0)

JOptionPane.shovd lossageDialog(null,"Selecciona y agrega al menos un queso"); return;

if (cuenta==1)
mat=ctotal+0.82; if (cuentaur2)
mat=ctotal*0.6E; if (cuenta-3)
mat=ctotal*0.5; if (cboFPago.getSelectedItem().equals("<Seleccionad>"))

JOptionPane.shordlessageDialog(null,"Selecciona una forma de pago"); return;

if (cboFPago.getSelectedIten().equals("Contado") }

ctotalectotal*0.98: pmen=0;

if (cboFPago.getSelectedIten().equals("Crédito"))

ctotal=ctotal#1.1f; JOptionPane.showdessageDialog(null,"Ctotal es"uctotal): pmen-ctotal/4;


JOptionPane.showdlessageDialog(null,"Paen es"+pmen);

txtMat.setText (String.valueof(mat)); ExtCTotal.setText (String. valueof (ctotal)):


txtPMen.set Text (String.valueOf (pmen));

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


ítems existentes en la caja de lista IstCurEsco 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 IstCos 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
IstCurEsco 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 111
La programación en los botones de comando Borrar y Cerrar es
de la misma forma como se aplicó en

51

Ing. Joffre Cartuche C


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,

ALUMNO:

Categoría de Cursos: Diseño Gráfico

Cursos Ofertados Costo Corel Draw


180 Photo Shop
170
Cursos Escogidos Costo Corel Draw 180
Agregar

Eliminar

Forma de Pago: Contado

CALCULAR
BORRAR
CERRAR

Matricula
Costo Total Pago Mensual
144.0
162.0
0.0

Programación III
Ing. Joffre Cartuche C

También podría gustarte