Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacion Visual Con Java Parte 1
Programacion Visual Con Java Parte 1
FACULTAD DE INGENIERIA
E.A.P INGENIERIA DE SISTEMAS E INFORMATICA
INDICE
Introduccin
03
Conceptos Bsicos
04
07
12
29
38
52
64
INTRODUCCION
El presente documento tiene como objetivo fundamental servir como gua didctica
para la programacin visual en java para los alumnos de la Escuela Acadmica
Profesional de ingeniera de Sistemas e Informtica de la Universidad Nacional del
Santa.
En la primera parte se estudiar a los objetos de control bsicos como son JLabel,
JTextField, JButton, JRadioButton, JCheckBox, JList, JComboBox y Jtable; en la
segunda parte se tendr en cuenta el diseo de aplicaciones a partir de casos, lo cual
implica el uso de los objetos de control bsicos estudiados en la primera parte como
tambin la construccin o diseo de mens; y en la tercera se abarcar la
construccin o diseo de sistemas de aplicaciones haciendo uso de las sentencias
selectivas, repetitivas y el uso de arreglos como tambin se ver el uso de interfaces
multimedia y paquetes.
Pgina
RESUMEN
Por mucho tiempo los desarrolladores de software han hecho su trabajo usando
lenguajes textuales de programacin, pero eso est a punto de cambiar. en este
artculo se presenta el paradigma de la programacin visual y los lenguajes visuales
de programacin como una alternativa para mejorar la produccin de aplicaciones de
software.
Qu es Programacin Visual?
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 esta 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 el.
las
notaciones
grficas
los
componentes
de
software
manipulables
pueden
ser
utilizadas
en
las
presentaciones
grficas
del
Pgina
que
son
entidades
que
combinan
estado
(datos),
comportamiento
Package Util: compuesta por clases para utilizadas como nmeros aleatorios,
vectores, propiedades del sistema, etc.
Pgina
Pgina
Para dar inicio a una aplicacin de Java bajo el entorno de Netbeans se debe definir un
proyecto, para ello, seleccionas la opcin del men denominada File. Se muestra
inmediatamente un men flotante cuya primera opcin indica New Proyect, est
opcin la seleccionas.
Ing. Mirko Manrique Ronceros
Pgina
Dado que nuestras aplicaciones van ser desarrolladas en entorno visual en Categories
seleccionas la carpeta Java y en Proyects seleccionas Java Application. Luego hacer
click en el botn de comando Next que mostrar la siguiente ventana:
Pgina
Es conveniente que uno mismo cree su carpeta de destino de los archivos que se
generan para la construccin de una aplicacin. Supongamos que la carpetas que
necesitamos crear se llama Ejercicios y la creamos en la unidad E, para ello es
necesario dar click en el botn de comando Browse.
Una vez indicada la nueva carpeta Ejercicios, procede a dar click en el botn de
comando Abrir quedando la ventana New Java Application de la siguiente forma:
Pgina
Pgina 10
Al dar click en Finish se mostrar el entorno de desarrollo de NetBeans listo para dar
inicio a la construccin de la aplicacin.
Cuando se pretenda construir una aplicacin de entorno visual tendramos que usar
plantillas que el mismo NetBeans IDE te ofrece. Ahora, seleccionemos el paquete
ejercicios
luego
elijamos
la
opcin
New
continuacin
seleccionemos
JFrameForm
Pgina 11
Una vez seleccionada la opcin JframeForm se muestra la ventana New Jframe Form
para definir el nombre de clase.
Pgina 12
Pgina 13
Solucin:
Pgina 14
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.
Pgina 15
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 queda as:
Pgina 16
package ejercicios;
import java.io.*;
import javax.swing.*;
/**
*
* @author Administrador
*/
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 un caja de mensaje para la lectura
de datos. De igual manera se trabajar para leer el dato de altura.
Tambin se observa el mtodo showMessageDialog de la clase JOptionPane que
permite mostrar en una caja de mensaje el resultado del clculo del rea.
Pgina 17
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:
Pgina 18
Mtodos ms usados:
Pgina 19
Propiedades ms usadas:
Evento ms usado:
Pgina 20
Pgina 21
Sobre el diseo del formulario damos click botn derecho y seleccionamos Set
Layout y posteriormente AbsoluteLayout.
Pgina 22
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
Pgina 23
Pgina 24
Nombre
JTextField2
txtAltura
JTextField3
txtArea
JButton1
btnCalcular
JButton2
btnLimpiar
JButton3
btnCerrar
Pgina 25
area=base*altura/2;
txtArea.setText(String.valueOf(area));
}
Una vez declaradas las variables de memoria, a la variable base se le asigna el
valor introducido en el cuadro de texto txtBase. El 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.
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.
Pgina 26
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 */
Pgina 27
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.
Pgina 28
Mtodo ms usado:
Pgina 29
Mtodo ms usado:
Aplicacin 1
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:
c. El monto del IGV es del 19% sobre el costo del artefacto luego de aplicar el
descuento o el incremento.
Pgina 30
Solucin:
Pgina 31
Pgina 32
Pgina 33
de
propiedades,
la
propiedad
buttongroup
luego
eligimos
buttongroup1.
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.
Pgina 34
}
else
{
if (rbAudio.isSelected())
incre=costo*0.07;
if (rbVideo.isSelected())
incre=costo*0.09;
if (rbLinea.isSelected())
incre=costo*0.1;
}
igv=(costo-dcto+incre)*0.19;
mpagar=(costo-dcto+incre)+igv;
txtDcto.setText(String.valueOf(dcto));
txtIncre.setText(String.valueOf(incre));
txtIgv.setText(String.valueOf(igv));
txtMPagar.setText(String.valueOf(mpagar));
}
Pgina 35
Pgina 36
Pgina 37
Mtodos ms usados:
Pgina 38
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:
Aplicacin
Construir 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:
Iniciamos
con
la
creacin
de
un
proyecto
denominado
Aplicaciones.
New
como
nombre
de
proyecto
Pgina 39
A continuacin se muestra la ventana New Jframe Form que debe quedar as:
Pgina 40
Procedemos
colocar
un
objeto
Jlabel
con
la
expresin
ALUMNO:
Pgina 41
Pgina 42
Pgina 43
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.
Pgina 44
Pgina 45
esto
debemos
definir
las
variables
modelo1
modelo2
como
Pgina 46
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
ListSelection.
Pgina 47
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().
Pgina 48
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.
Pgina 49
Pgina 50
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.
Pgina 51
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:
Mtodos ms usados:
Pgina 52
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:
Aplicacin
Construir 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.
Solucin:
Pgina 53
Pgina 54
Pgina 55
Pgina 56
Pgina 57
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
Pgina 58
En
el
evento
mencionado
programa
siguiente
lo
(slo
escribe lo que
seala la llave
de color rojo):
Pgina 59
actual
del
tem
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.
Pgina 60
Selecciona
el
objeto
lstCurOfer
ubcate
en
el
evento
ValueChaged
Se declara una variable entera llamada ndice, esta variable recibe el valor del
ndice del tem seleccionado gracias al mtodo getSelectedIndex(). Lo que se
quiere es seleccionar el tem de la caja de lista de lstCostos que tenga el mismo
ndice que lstCurOfer, para ello se usa el mtodo setSelectedIndex(indice)
para dar el mismo ndice a la caja de lista lstCostos. Finalmente hacemos que
el botn de comando Agregar se habilite con el mtodo setEnabled()
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
modelo4.
Finalmente
Pgina 61
En esta programacin
se hace uso del mtodo
remove() que elimina
un tem de la lista a
travs de la variable
objeto
modelo3
se
inhabilita el botn de
comando Eliminar.
Ahora
procede
programar
en
a
el
botn de comando
Calcular
escribe
(slo
lo
que
seala la llave de
color rojo):
Pgina 62
Pgina 63
Model: Permite definir el nmero de columnas y filas del objeto como tambin
las expresiones que irn en las columnas.
Mtodos ms usados:
Pgina 64
DefaultTableModel
Esta clase permite construir el modelo para el objeto Table. Los mtodos ms
utilizados son:
Aplicacin
Construir una aplicacin que permita calcular el promedio de las notas obtenidas en el
curso de Programacin Visual. La aplicacin debe permitir el ingreso del nombre del
alumno, la nota de la I Unidad, la nota de la II Unidad y la nota de la III Unidad.
Adems debe permitir la seleccin del turno a la que pertenece el alumno. A travs de
un botn de comando debe agregar los datos en un objeto Jtable, calculando el
promedio de las notas; y a travs de otro botn de comando debe eliminar la fila
seleccionada en el objeto JTable. Tambin se debe mostrar el total de filas agregadas
en el objeto JTable.
Solucin:
la
se
siguiente
ventana:
Pgina 65
Pgina 66
Pgina 67
Pgina 68
por
propone
columnas
defecto
la
y
el
objeto
conformacin
4
filas,
Table
de
dando
la
(arreglo
Nosotros
vamos
bidimensional).
a
establecer
el
Pgina 69
Vamos a proceder a programar. Comenzamos con hacer uso del paquete swing
y especficamente a las clases JoptionPane y a la clase JTable.
Declaramos
creamos
una
variable
de
memoria
dtm
del
tipo
DefaultTableModel.
Pgina 70
Formulario
Observamos que el objeto JTable muestra
las columnas definas en la programacin
hecha en el mtodo constructor.
Procedamos
con
la
programacin
del
Pgina 71
ingresado
en
los
cuadros
de
textos
txtn1,
txtn2
txtn3
de
textos
hacemos
que
el
objeto
JComboBox
quede
en
Pgina 72
Declaramos las variables fila y total de tipo entero. La variable fila se le asigna
el valor de la posicin de la fila seleccionada en el objeto Jtable llamado Tabla.
Con la sentencia IF se evala a la variable fila si es mayor o igual a cero
procedemos a remover o borrar la fila previamente seleccionad, caso contrario
se muestra un mensaje indicando que se debe seleccionar una fila en la Tabla.
Finalmente, se muestra la cantidad de filas agregadas en el cuadro de texto
txtTotal y haciendo uso del mtodo setRowCount() perteneciente a dtm.
Pgina 73