Swing P1
Swing P1
DOCENCIA EN INFORMÁTICA
PROGRAMACIÓN EN JAVA
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
Audio
Video
Linea Blanca
Font: Permite establecer el tipo de letra en el objeto de control. Enabled: Para habilitar
o inhabilitar el uso del objeto de control.
Contado
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:
25
Sleps
Name du Lulaliunt
1.
Chooso Project Namc and Location
Project Name:
Aplcaciones
E:\Prallilas
| | Bruwe...
Prujell Olaliuu: Project Folder:
C:\Practicas Aplicaciones
< Back
mesls
Elish
Cancel
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...
Slegs
Neme and locelim
wwe frapkcsor:
Cliccles
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
Runtime
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
Runtime
Navegador
Inspector É Formulario FrmAplicacion1 - Otros Componentes
E buttonGroupi (ButtonGroup] - [Frame]
of AbsoluteLayout
How jtabeli (label] FOJTextFieldi [JTextField]
kjLabel3 [JLabel] --- RadioButtoni (JRadioButton]
- RadioButton2 [RadioButton]
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
Txtcasto
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
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
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.
dispose();
Proyects (se encuentra al lado izquierdo del diseño del formulario) y al dar click
botón derecho elegimos Run File.
COMPONENTE JLIST
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.
- DX
Cursos ofrecidos: Visual Basic Power Builder Visual Java Aplicaciones Web Internet Diseño
Gráfico
stem seleccionado
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:
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:
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...
Tools
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
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
Gisteme Gade
JFramel - Navigaon
| Inspector
Properties
SOUTOE
Design
5
..ge
Source
Aplicaciones jave x ErmCursos ava!
x Desiune
S L LLS
o
$
#- =- # @
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]
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
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
Item:
Internet
Add
Update
Item List Visual Basic Power Builder Visual Java Aplicaciones Web Internet
Remove
DOWE
OK
Reset to default
Cancel
ALUMNO:
Seleccionar Cursos
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
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]
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:
ALUMNO:
Seleccionar Cursos
Cursos Seleccionados
Viajal Basic
180
Agregar
PcI
Change Variable Name ... Bind Events
In
Auto Resina
Customize Code
Properties
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.
COMPONENTE COMBOBOX
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:
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;
Nombre y Ubicación
Proyecto:
Aplicaciones
Ubicación:
Packages de Fuentes
Package:
aplicaciones
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
ALUMNO
JComboBox1
Categoria de Cursos Hem 1
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
Lista de Items
Itam 2
FLETISME
utem 3
2. Luego agregas las categorias de cursos
Avanzado...
Reset to default
Cancelar
ALUMNO:
Categoria de Cursos:
<Seleccionar>
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
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.
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
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.
ALUMNO:
LUMNO:
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
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:
Se declara una variable entera llamada índice, esta variable recibe el valor
del índice del ítem
Programación III
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).
ctotal=ctotal+Float.parseFloat((String)modelo4.elementat (1));
if (ctotal==0)
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>"))
if (cboFPago.getSelectedIten().equals("Contado") }
ctotalectotal*0.98: pmen=0;
if (cboFPago.getSelectedIten().equals("Crédito"))
51
ALUMNO:
Eliminar
CALCULAR
BORRAR
CERRAR
Matricula
Costo Total Pago Mensual
144.0
162.0
0.0
Programación III
Ing. Joffre Cartuche C