Sei sulla pagina 1di 52

Programacion II

UNASAM

Uso de NetBeans 5.0


Iniciamos dando clic en el icono:

Luego se aprecia el siguiente entorno:

A continuacin dar clic en File y luego en New Proyect

Dar clic en New Proyect

Se muestra una ventana: Ing. Mendoza Corpus Carlos Pgina 1 de 52

Programacion II

UNASAM

Nos aseguramos que est en la carpeta General y en Java Application

Dar clic en Next y se mostrar la siguiente ventana:

Aqu colocar el nombre del proyecto

Para cambiar la localizacin del proyecto

Esta ltima ventana puede quedar as:

Ing. Mendoza Corpus Carlos

Pgina 2 de 52

Programacion II

UNASAM

Nombre de Proyecto: AreaTriangulo

Creacin de la clase AreaTriangulo en ejercicios

Localizacin del proyecto: E:\Ejercicio

Finalmente dar clic en el botn de comando Finish, quedando el entorno de NetBeans de la siguiente forma:

Ing. Mendoza Corpus Carlos

Pgina 3 de 52

Programacion II

UNASAM

Agregamos al cdigo de la programacin generada, por debajo del package ejercicios, lo siguiente: import java.io.*; import javax.swing.*; y agregamos cdigo de programacin en el mtodo esttico Main de la clase AreaTriangulo, como se aprecia a continuacin: (lo que est escrito en azul)
package ejercicios; import java.io.*; import javax.swing.*; /** * * @author LAB1_PC14 */ public class AreaTriangulo { /** Creates a new instance of AreaTriangulo */ public 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);

Hace un momento se ha agregado el paquete javax.swing.* para poder usar el ingreso de datos como es la base y la altura y para mostrar el resultado. Cuando la aplicacin es ejecutada te mostrar la siguiente ventana:

Te pide el ingreso del valor de la base y luego dar clic en el botn de comando Aceptar. Inmediatamente te muestra la siguiente ventana:

Te pide el ingreso del valor de la altura y luego dar clic en el botn de comando Aceptar. Vamos a suponer que se ingres para base 10 y para la altura 6 entonces se visualizar lo siguiente: Ing. Mendoza Corpus Carlos Pgina 4 de 52

Programacion II

UNASAM

Bueno, con esto acabamos de hacer una pequea aplicacin con NetBeans. A continuacin vamos a desarrollar el mismo ejercicio pero utilizando un entorno visual.

1. Seleccionar el paquete ejercicios

2. Seleccionar New 3. Seleccionar JFrameForm

Se visualiza la siguiente ventana:

Nombre de clase: frmAreaTriangulo

Luego dar clic en Finish

Ing. Mendoza Corpus Carlos

Pgina 5 de 52

Programacion II

UNASAM

Sobre el diseo del formulario hacer clic botn derecho del Mouse y seleccionar lo siguiente:

Seleccionar

Luego seleccionar un objeto de control denominado JLabel de la caja de herramientas (palette).

Ubcate en la ventana de propiedades en la propiedad text y cmbialo por BASE: Y sigue trabajando usando los cuadros de textos (JTextField) y los botones de comando (JButton). El diseo debe quedar as:

Ing. Mendoza Corpus Carlos

Pgina 6 de 52

Programacion II

UNASAM

btnCalcular txtBase btnLimpiar txtAltura btnCerrar

txtArea

Para dar nombres a los objetos de control se procede a seleccionar al objeto, por ejemplo el primer cuadro de texto referido a Base y se da clic botn derecho del mouse y seleccionamos la opcin Rename, mostrndose la siguiente ventana:

Lo cambiamos por txtBase

As cambiamos los nombres de los objetos de control a aquellos objetos indicados en el diseo del formulario. Ahora procedamos a programar, comenzando con el objeto btnCalcular, para ello es necesario seleccionar dicho objeto y dar clic botn derecho del mouse y seleccionamos Events, luego Action y finalmente actionPerformed:

Seleccionar actionPerformed

Ing. Mendoza Corpus Carlos

Pgina 7 de 52

Programacion II
El entorno de NetBeans se muestra de la siguiente manera:

UNASAM

Aqu procedemos a programar en el botn de comando btnCalcular

A continuacin muestro la programacin que debe ser colocado en: private void btnCalcularActionPerformed:

Esta son las lneas de programacin a usar

Se observa en esta programacin, la declaracin de las variables base y altura como enteros, luego se declara la variable base como real double. Posteriormente la variable base recibe el valor ingresado en el cuadro de texto txtBase, este dato se obtiene con el mtodo getText(), pero como getText() contiene el dato ingresado Ing. Mendoza Corpus Carlos Pgina 8 de 52

Programacion II

UNASAM

como String, entonces con la clase Integer con su mtodo parseInt hacemos la conversin a entero. Lo mismo hacemos para obtener el dato de la altura y se almacena en la variable altura. A continuacin procedemos a calcular el rea y el resultado lo asignamos a la variable llamada area. Esta ltima variable area su contenido debe ser puesto en el cuadro de texto tatarea, para ello es necesario ahora convertir el dato numrico en cadena para que lo acepte el cuadro de texto, entonces se utiliza la clase String con su mtodo valueOf para hacer dicha conversin. Ahora procedamos a programar en el botn de comando Limpiar, seleccionando el objeto mencionado y dando clic botn derecho del mouse y seleccionamos Events, luego Action y finalmente actionPerformed.

Esta son las lneas de programacin a usar

Se observa en esta programacin, la limpieza que se da a cada uno de los objetos cuadro de texto a travs del uso del mtodo setTexT(). Con el mtodo requesFocus() se logra dar el cursor al cuadro de texto txtBase. Ahora procedamos a programar en el botn de comando Cerrar, seleccionando el objeto mencionado y dando clic botn derecho del mouse y seleccionamos Events, luego Action y finalmente actionPerformed.

El mtodo dispose(), permite salir de la aplicacin. Para ejecutar la aplicacin debemos seleccionar frmAreaTriangulo.java en el panel de componentes y dando clic botn derecho seleccionamos Run File

Ing. Mendoza Corpus Carlos

Pgina 9 de 52

Programacion II

UNASAM

Seleccionar Run File para ejecutar

La aplicacin puede observarse de la siguiente manera:

Si observas el formulario como que ha salido sus bordes pegado a los objetos de control y tu puedes manipular el ancho y la altura del formulario, como su ubicacin dentro de la pantalla. Agrega las siguientes lneas de programacin: setSize(400,250); 400 para el ancho y 250 para la altura del formulario setLocation(250,250); el formulario esta localizado en la posicin 250, 250

Ing. Mendoza Corpus Carlos

Pgina 10 de 52

Programacion II Uso de los objetos JPanel, JRadioButton y JChecbox

UNASAM

Iniciamos con la creacin de un proyecto denominado Aplicaciones. Seleccionamos del men, la opcin File y luego New Proyect. Aparece la ventana de New Proyect y damos clic en el botn de comando Next. La ventana debe quedar de la siguiente forma:

Luego de dar clic en el botn de comando Finish, el entorno de NetBeans queda as:

Ing. Mendoza Corpus Carlos

Pgina 11 de 52

Programacion II

UNASAM

Vamos a construir una aplicacin sin formato visual que permita el ingreso del costo de un artefacto, del tipo de artefacto y la forma de pago para que calcule lo siguiente: a. Si el pago es al contado hay un descuento del 6% del costo del artefacto si el tipo de artefacto es Audio, 8% si es Video y 5% si es Lnea Blanca. b. Si el pago es al crdito hay un incremento del 7% sobre el costo del artefacto si es el tipo de artefacto es audio, 9% si es Video y 10% si es Lnea Blanca. c. El monto del igv es del 19% sobre el costo del artefacto luego de aplicar el descuento o el incremento. d. El monto a pagar que es el costo del artefacto (descontado o incrementado) ms el monto del igv. Solucin Agregamos al cdigo de la programacin generada, por debajo del package ejercicios, lo siguiente: import java.io.*; import javax.swing.*; y agregamos cdigo de programacin en el mtodo esttico Main de la clase Aplicacion1, como se aprecia a continuacin: (lo que est escrito en azul)
package ejemplos; import java.io.*; import javax.swing.*; /** * * @author User */ public class Aplicacion1 { /** Creates a new instance of Aplicacion1 */ public Aplicacion1() { } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here
double costo,dcto=0,incre=0,igv,mpagar; String tipo, fpago; costo=Double.parseDouble(JOptionPane.showInputDialog(null,"Ingrese el costo del Artefacto: ")); tipo=JOptionPane.showInputDialog(null,"Ingrese el tipo de Artefacto (Audio,Video, Linea Blanca): "); fpago=JOptionPane.showInputDialog(null,"Ingrese la forma de pago (Contado, Credito): "); tipo=tipo.toUpperCase(); fpago=fpago.toUpperCase(); if ("CONTADO".startsWith(fpago)) { if ("AUDIO".startsWith(tipo)) dcto=costo*0.06; if ("VIDEO".startsWith(tipo)) dcto=costo*0.08; if ("LINEA BLANCA".startsWith(tipo)) dcto=costo*0.05; } else { if ("AUDIO".startsWith(tipo)) incre=costo*0.07; if ("VIDEO".startsWith(tipo)) incre=costo*0.09; if ("LINEA BLANCA".startsWith(tipo)) incre=costo*0.1; }

Ing. Mendoza Corpus Carlos

Pgina 12 de 52

Programacion II
igv=(costo-dcto+incre)*0.19; mpagar=(costo-dcto+incre)+igv; JOptionPane.showMessageDialog(null,"El JOptionPane.showMessageDialog(null,"El JOptionPane.showMessageDialog(null,"El JOptionPane.showMessageDialog(null,"El } descuento es: "+dcto); incremento es: "+incre); monto del igv: "+igv); monto a pagar: "+mpagar);

UNASAM

Cuando la aplicacin es ejecutada te mostrar la siguiente ventana:

Una vez ingresado el costo del artefacto y al dar clic en el botn de comando Aceptar se muestra:

Se ingresa el tipo de artefacto ingresando Audio, Viedo o Linea Blanca. Cabe sealar que el programa est diseado para poder ingresar en minsculas o maysculas o puedes comenzar con A si quieres Audio Au si quieres Audio. Luego de dar clic en Aceptar se muestra:

Una vez ingresado Contado o Credito o parte de la palabra, se procede a dar clic en el botn de comando Aceptar y se visualiza el descuento, luego el incremento, a continuacin el monto del igv y finalmente el monto a pagar.

A continuacin vamos a desarrollar el mismo ejercicio pero utilizando un entorno visual.

Ing. Mendoza Corpus Carlos

Pgina 13 de 52

Programacion II

UNASAM

1. Selecciona el paquete ejemplos 2. Selecciona New

3. Selecciona JFrame Form

Se visualiza la siguiente ventana:

Nombre de la clase: frmAplicacion1

Luego dar clic en Finish

A continuacin vamos a disear el formulario, donde haremos nfasis en el manejo de los nuevos objetos de control. No olvidarse que cada vez de usar un formulario su Layout debe ser cambiado a AbsoluteLayout, como se aprecia en la siguiente figura:

Ing. Mendoza Corpus Carlos

Pgina 14 de 52

Programacion II

UNASAM

Selecciona AbsoluteLayout

Luego de colocar como etiqueta (usando un JLabel) la expresin: Costo del Artefacto y el cuadro de texto (Usando un JtextField), vamos a crear un objeto JPanel:

Selecciona Jpanel

Una vez seleccionado el objeto Jpanel dibjalo en el diseo del formulario por debajo del cuadro de texto, de la siguiente manera:

Ing. Mendoza Corpus Carlos

Pgina 15 de 52

Programacion II

UNASAM

Como el objeto JPanel es un objeto contenedor como loes el formulario, debemos tambin darle inicializarlo como AbsoluteLayout.

Seleccionar AbsoluteLayout

Tambin modificaremos su forma de presentacin. Para esto seleccionamos el objeto JPanel y dando clic botn derecho seleccionamos la opcin Properties. Aparece la siguiente ventana:

Seleccionar Border en el botn de comando

Ing. Mendoza Corpus Carlos

Pgina 16 de 52

Programacion II
A continuacin aparece la siguiente ventana:

UNASAM

1. Seleccionar TitledBorder

3. Seleccionar Border en el botn de comando

2. Colocar en Title: Tipos de Artefactos

Se muestra la siguiente ventana:

1. Selecciona EtchedBorder

2. Cambia a Raised en Type

3. dar clic en el botn OK

Vuelves a la ventana de propiedades quedando as: Ing. Mendoza Corpus Carlos Pgina 17 de 52

Programacion II

UNASAM

Finalmente en border debe quedar as

Luego dar clic en el botn de comando Close

Ahora usamos el objeto JRadioButon para indicar los tipos de artefactos. Para esto es necesario ser dibujado dentro del objeto JPanel, quedando el diseo de la siguiente manera:

Si procedemos hasta aqu hacer una ejecucin y procedemos a seleccionar Audio, Video y Lnea Blanca en los objetos Jradiobutton, se observa que puede quedar as:

Ing. Mendoza Corpus Carlos

Pgina 18 de 52

Programacion II

UNASAM

Los objetos JRadioButton no son mutuamente excluyentes, por lo tanto en NetBeans es necesario crear un objeto denominado ButtonGroup para agruparlos. Ahora selecciona un objeto ButtonGroup y llvalo sobre el diseo del formulario (ste objeto no se dibuja en el formulario, pero existe para usarlo). Procede a seleccionar el objeto JRadioButton referido a Audio y en la ventana de propiedades busca la propiedad ButtonGroup y selecciona buttonGroup1. Asi hacerlo con los dems tipos de artefactos.

Aqu selecciona ButtonGroup1

A continuacin agregamos un objeto JCheckBox para indicar la forma de pago que solo puede ser de dos posibilidades: Contado o Crdito. Seleccionado significa al Contado, no seleccionado significa al crdito. El formulario queda de la siguiente manera (se indica los nombres de los objetos):
txtCosto rbAudio rbVideo rbLinea

chkContado btnCalcular btnBorrar btnCerrar txtDcto txtIncre txtIgv txtMPagar

Ahora procedamos a programar: Comenzamos a programar en el botn de comando btnCalcular: Ing. Mendoza Corpus Carlos Pgina 19 de 52

Programacion II

UNASAM

Como vern lo novedoso de esta programacin es el uso de isSelected(), mtodo que devuelve verdadero si el objeto est seleccionado y falso cuando no est seleccionado. La programacin en el botn de comando btnBorrar es:

Finalmente en el botn de comando btnCerrar es:

Ing. Mendoza Corpus Carlos

Pgina 20 de 52

Programacion II Uso de los objetos JScrollPane y JList

UNASAM

Iniciamos con la creacin de un proyecto denominado Aplicaciones. Seleccionamos del men, la opcin File y luego New Proyect. Aparece la ventana de New Proyect y damos clic en el botn de comando Next. La ventana debe quedar de la siguiente forma:

Luego de dar clic en el botn de comando Finish, el entorno de NetBeans queda as:

Ing. Mendoza Corpus Carlos

Pgina 21 de 52

Programacion II

UNASAM

A continuacin vamos a 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 podrn ser pagados 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 Seleccionamos un JFrame Form desde el paquete aplicaciones, seguimos con New y finalmente se elige el formulario JFrame

Seleccionar JFrame Form

A continuacin se muestra la ventana New JFrame Form que debe quedar as:

El formulario se llamar frmCursos

Luego dar clic en el botn Finish

Ing. Mendoza Corpus Carlos

Pgina 22 de 52

Programacion II

UNASAM

Se muestra el diseo del formulario. Recuerda siempre de cambiar el Layout de la siguiente manera:

Ahora colocaremos objetos de los que ya conocemos, quedando el diseo de la siguiente manera:

Vamos a proceder a colocar un objeto JScrollPane debajo de la etiqueta Seleccionar cursos, quedando el diseo del formulario de la siguiente manera:

Ing. Mendoza Corpus Carlos

Pgina 23 de 52

Programacion II

UNASAM

En este objeto JScrollPane dentro se dibujara el primer objeto JList, quedando en su interior de color blanco, como se observa a continuacin:

El objeto JList1 est dentro de JScrollPane1

Estando seleccionado el objeto JList, en la ventana de propiedades tenemos una propiedad llamada model que permite colocar los tems dentro de la caja de lista JList1.

Ing. Mendoza Corpus Carlos

Pgina 24 de 52

Programacion II

UNASAM

Seleccionar el botn de comando de model

Luego de seleccionar el botn de comando referido a la propiedad model se muestra la siguiente ventana

1. Eliminamos cada uno de estos tems, seleccionando y dando clic en Remove

2. Escribir el nombre del curso y luego dar clic en el botn de comando Add

Esta ventana debe quedar as:

Ing. Mendoza Corpus Carlos

Pgina 25 de 52

Programacion II

UNASAM

Una vez ingresado los nombres de los cursos se procede a dar clic en el botn de comando OK

El diseo del formulario debe quedar as:

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. Adicionalmente pondremos en el diseo 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. Posteriormente agregamos las forma de pago con dos objetos JRadioButton, los botones de comando Calcular, Limpiar y Cerrar. Finalmente los objetos que mostrarn el descuento, el incremento y el monto a pagar por los cursos seleccionados. El diseo del formulario debe quedar de la siguiente forma:

Ing. Mendoza Corpus Carlos

Pgina 26 de 52

Programacion II

UNASAM
txtAlu lstCursos lstCostos btnAgregar lstCursel lstCos btnEliminar rbCon rbCre txtTotal btnCalcular btnLimpiar btnCerrar

txtDesc

txtIncre

txtMonto

Ahora comenzamos a programar Vamos colocando la siguiente programacin despus del paquete aplicaciones:

Estos paquetes permitirn hacer uso de javax.swing y java.awt que nos permitir trabajar de manera fcil los objetos de control de preferencia el objeto JList. Ahora bien, si observamos en el diseo del formulario de las cuatros objetos Jlist, dos de ellos ya tienen tems como lo son lstCursos y lstCostos. En cambio los objetos lstCursel y lstCos se llenara en funcin a lo seleccionado y agregado con el botn de comando Agregar. Por lo tanto debemos definir un modelo ( model) para aquellas listas que se llenarn en tiempo de ejecucin. Por esto debemos definir las variables modelo1 y modelo2 como DefaultListModel() como se muestra a continuacin:

Una vez definido en el mtodo constructor se debe indicar que la variable modelo1 es para la caja de lista lstCursel y la variable modelo2 es para la caja de lista lstCos, todo esto se podr hacer con el mtodo setModel(). Tambin hacemos que los botones de comando Agregar y Eliminar se inhabilite desde la ejecucin. Ing. Mendoza Corpus Carlos Pgina 27 de 52

Programacion II

UNASAM

Bien, ahora debemos programar sobre el objeto lsrCursos, para que el usuario al momento de seleccionar un curso se marque simultneamente el costo y se habilite el botn de comando Agregar. Para esto se debe seleccionar un evento de la caja de lista lstCursos llamado ValueChanged perteneciente a ListSelection.

En el evento mencionado se debe programar lo siguiente:

Se declara una variable entera llamada ndice, esta variable recibe el valor del indice del item 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 o lo tiene Visual Basic, el valor de 2 lo tiene Visual Java y as sucesivamente. Lo que se quiere seleccionar el item de la caja de lista de lstCostos que tenga el mismo indice que lstCursos, para ello se usa el mtodo setSelectedIndex(indice) para dar el mismo indice a la caja de lista lstCostos. Finalmente hacemos que el botn de comando Agregar se habilite con el mtodo setEnabled(). Veamos la programacin del botn de comando Agregar: Ing. Mendoza Corpus Carlos Pgina 28 de 52

Programacion II

UNASAM

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 item 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 item 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 item de una caja de lista con slo indicar el valor del indice. Finalmente en el objeto txtTotal se visualiza el contenido de la variable total e inhabilitamos el botn de comando Agregar. Ahora programamos en la caja de lista lstCursel cuando uno desea seleccionar un curso y desea eliminarlo.

La idea es la misma que se aplic en la programacin sobre el evento ValueChanged del objeto lstCursos, la diferencia esta que esta vez se habilita el botn de comando btnEliminar. Luego en el botn de comando Eliminar colocamos la siguiente programacin:

Ing. Mendoza Corpus Carlos

Pgina 29 de 52

Programacion II

UNASAM

Lo novedoso de esta programacin es la presencia del mtodo remove() que elimina un item de la lista a travs de la variable objeto modelo1 modelo2 dado el valor del indice. Al final de la programacin se vuelve a calcular el costo total de los cursos seleccionados y se inhabilita el botn de comando Eliminar. Ahora procedamos a programar en el botn de comando Calcular:

Para el botn de comando Eliminar se programa:

En esta programacin la novedad esta que limpiar totalmente una caja de lista se limpia con el mtodo clear() perteneciente a las variables objeto modelo1 y modelo2, lo cual hace la limpieza a los objetos lstCursel y lstCos. Tambin hacemos el uso del mtodo setSelectedIndex() dando el valor de 5, dado que dicho indice no existe en la caja de lista, lo que hace que se pierda lo seleccionado. Y por ltimo tenemos la programacin del botn de comando Cerrar

Ing. Mendoza Corpus Carlos

Pgina 30 de 52

Programacion II

UNASAM

Objeto de Control JComboBox Un objeto de control JComboBox permite dibujar en el formulario una lista desplegadle, la cual contiene opciones (tems). ComboBox significa cuadro combinado porque combina un cuadro de texto con una caja de lista, es como si fuera un JtextField mezclado o combinado con un Jlist. Tiene la particularidad de que se debe seleccionar un botn de comando de despliegue y luego seleccionar la opcin o tem.

Una vez dado clic en el botn de despliegue se muestra las opciones o tems del

objeto Propiedades ms usadas: Model: Permite establecer los tems de la caja de lista. Font: Permite establecer el tipo de letra en el objeto de control. Enabled: Para habilitar o inhabilitar el uso del objeto de control. getSelectedIndex: Contiene el ndice del tem seleccionado setSelectedItem: Contiene el tem seleccionado Mtodos ms usados:

setModel(): Permite vincular una variable objeto de tipo model a un objeto de control JList. getItemAt(): Devuelve el tem que est en el ndice que se especifica. getSelectedIndex(): Contiene el valor del ndice activo o ndice actual del tem seleccionado de la caja de lista. El ndice es un valor numrico correlativo no visible que va desde 0.

Evento ms usado:

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

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. Pgina 31 de 52

Ing. Mendoza Corpus Carlos

Programacion II

UNASAM

El costo total tiene un descuento del 10% si la forma de pago es al contado y un incremento del 10% si es al crdito. Existe un pago mensual cuando la forma de pago es al crdito y es equivalente al costo total incrementado dividido en 4 cuotas.

Solucin:

Usars el mismo proyecto utilizado en la sesin anterior y slo agregars un formulario (Jframe).

Inmediatamente se muestra la siguiente ventana:

Luego dar clic en el botn de comando Finish.

A continuacin se muestra el entorno de desarrollo de NetBeans y no olvides de dar clic en el botn derecho del mouse sobre el formulario y establece AbsoluteLayout en Set Layout.

Ing. Mendoza Corpus Carlos

Pgina 32 de 52

Programacion II

UNASAM

Procede a colocar un objeto Jlabel con la expresin ALUMNO: acompaado de un cuadro de texto (JTextField). Por debajo de ALUMNO: colocar un objeto Jlabel que exprese Categora de Cursos: y al lado derecho de ste objeto colocar un objeto JComboBox.

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.

Ing. Mendoza Corpus Carlos

Pgina 33 de 52

Programacion II

UNASAM

Luego de seleccionar el botn de comando referido a la propiedad model se muestra la siguiente ventana:

Ingresas las categoras de cursos como son: <Seleccionar>, Diseo Grfico, Diseo Web, Ofimtica, Lenguajes de Programacin y Sistemas Operativos, quedando el diseo del formulario de la siguiente manera:

Ing. Mendoza Corpus Carlos

Pgina 34 de 52

Programacion II

UNASAM

Colocars un objeto Jlabel con la expresin Cursos Ofertados y otro objeto Jlabel ubicado al lado derecho de ste ltimo con la expresin Costo. Aades dos listas debajo de las expresiones de estos dos ltimos Jlabel, haciendo que los tems sean eliminados o removidos a travs del uso de la propiedad model. Luego agregas dos botones de comando que indiquen Agregar y Eliminar. Posteriormente, aades dos objetos Jlabel que expresen: Cursos Escogidos y Costo y debajo de estos objetos Jlabel agregas dos objetos JList siendo tambin eliminados o removidos los tem a travs del uso de la propiedad model.

A continuacin agregas un objeto Jlabel con la expresin Forma de Pago: y al lado derecho de ste ltimo objeto colocas un JComboBox que debe contener como tems: <Seleccionar>, Contado y Crdito. Luego los botones de comando CALCULAR, BORRAR y CERRAR y los objetos que mostrarn el monto de la matrcula, el costo total y el pago mensual. Los nombres de los objetos de control dibujados en el formulario queda de la siguiente manera:

Ing. Mendoza Corpus Carlos

Pgina 35 de 52

Programacion II

UNASAM

Ahora bien, si observamos en el diseo del formulario, los cuatros objetos JList no tienen tems. Los objetos JList referidos a Cursos Ofertados y Costo (objetos ubicados al lado izquierdo del diseo del formulario) se llenarn de tems de acuerdo a lo seleccionado en la lista desplegadle referido a la Categora de Cursos. Los objetos Jlist referidos a Cursos Escogidos y Costos se llenarn en la medida que se seleccione un curso ofertado y se agregue con el botn de comando Agregar. Los 4 objetos JList deben tener un modelo (model) cada uno, para ello debes definir 4 variables: modelo1, modelo2, modelo3 y modelo4 del tipo DefaultListModel(). Para poder hacer uso de la clase DefaultListModel se debe hacer uso del paquete javax.swing.*; y debe ser escrito despus del paquete Aplicaciones.

Ahora procede a escribir la definicin de DefaultListModel en la clase frmCursosExtension.

las

variables

del

tipo

Una vez definido las 4 variables de memoria del tipo DefaultListModel, en el mtodo constructor se debe indicar que la variable modelo1 es para la caja de lista lstCurOfer, la variable modelo2 para la caja de lista lstCostos, la variable modelo3 es para la caja de lista lstCurEsco y la Pgina 36 de 52

Ing. Mendoza Corpus Carlos

Programacion II

UNASAM

variable modelo4 es para la caja de lista lstCos. Tambin hacemos que los botones de comando Agregar y Eliminar se inhabilite su uso desde la ejecucin de la aplicacin. Adems le indicamos una localizacin dentro de la pantalla y el tamao del formulario (slo escribe lo que seala la llave de color rojo).

Ahora le toca el turno en la programacin al objeto JComboBox denominado cboCategorias en el evento ActionPerformed, para ello debes seleccionar el objeto mencionado y dando clic botn derecho del mouse eliges Events y

luego como Actions seleccionas ActionPerformed. En el evento mencionado programa lo siguiente (slo escribe lo que seala la llave de color rojo):

Ing. Mendoza Corpus Carlos

Pgina 37 de 52

Programacion II

UNASAM

Se declara una variable de memoria llamada indice para que almacene el ndice 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.

Si en estos momentos procedes a ejecutar la aplicacin se mostrar el formulario de la siguiente manera:

Ing. Mendoza Corpus Carlos

Pgina 38 de 52

Programacion II

UNASAM

Y si seleccionas el tem Diseo Grfico se visualizar los cursos con sus

respectivos costos en los JList del lado izquierdo del diseo del formulario. Salte de la ejecucin y continuemos con la programacin.

Selecciona el objeto lstCurOfer y ubcate en el evento ValueChaged perteneciente a ListSelection y ste a su vez pertenece a Events. Recuerda que esto se hace seleccionando al objeto lstCurOfer y dando clic botn derecho del mouse se muestra un men flotante. En el evento mencionado programa lo siguiente:

Ing. Mendoza Corpus Carlos

Pgina 39 de 52

Programacion II

UNASAM

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() A continuacin escribe el siguiente cdigo en el botn de comando Agregar (slo escribe lo que seala la llave de color rojo):

Aqu declaramos dos variables de tipo String llamados curso y costo y las variables enteras total y i. En la variable curso se almacena el curso seleccionado en la lista lstCurOfer, el mtodo getSelectionValue() trae consigo el tem seleccionado pero lo trae como objeto y al poner (String) hacemos que se convierta en cadena de caracteres para que pueda ser asignada a la variable curso. De igual manera se hace con la variable costo. Para agregar un tem a una caja de lista se usa el mtodo addElement perteneciente al objeto variable modelo3 o modelo4. Finalmente inhabilitamos el botn de comando Agregar.

Ahora programa en la caja de lista lstCurEsco en el evento ValueChanged cuando desees seleccionar un curso para luego eliminarlo (slo escribe lo que seala la llave de color rojo).

La idea es la misma que se aplic en la programacin sobre el evento ValueChanged del objeto lstCurOfer. La diferencia est en que esta vez se habilita el uso del botn de comando Eliminar.

En el botn de comando eliminar colocas la siguiente programacin (slo escribe lo que seala la llave de color rojo):

Ing. Mendoza Corpus Carlos

Pgina 40 de 52

Programacion II

UNASAM

En esta programacin se hace uso del mtodo remove() que elimina un tem de la lista a travs de la variable objeto modelo3 modelo4 dado el valor del ndice. Al final de la programacin se inhabilita el botn de comando Eliminar.

Ahora procede a programar en el botn de comando Calcular (slo escribe lo que seala la llave de color rojo):

Se declara la variable de memoria cuenta que almacena la cantidad de tems existentes en la caja de lista lstCurEsco a travs del uso del mtodo Size() aplicado a la variable modelo3. Tambin se declara una variable de memoria i de tipo entero y tres variables de tipo float para el clculo de la matrcula, el costo total y el pago mensual. A travs de una sentencia for se procede a obtener los valores de la caja de lista lstCos usando la variable modelo4 con el mtodo elementAt(), para que estos valores sean Ing. Mendoza Corpus Carlos Pgina 41 de 52

Programacion II

UNASAM

sumados ya acumulados en la variable de memoria ctotal. En la primera sentencia if se procede a averiguar si las cajas de listas lstCurEsco y LstCos tiene tems, si no tienen tems se visualiza un mensaje de error indicando la necesidad de seleccionar y agregar cursos y se procede a suspender la ejecucin del programa gracias a instruccin return (retornar). En los siguientes tres if se calcula el monto de la matrcula aplicando el porcentaje indicado en el enunciado de la aplicacin. En la siguiente sentencia if se evala si se seleccion una forma de pago y si no se logr hacerlo muestra un mensaje de error y suspende la ejecucin del programa. Luego con las siguientes sentencias if se evala la forma de pago y se procede hacer los clculos respectivos. Finalmente se los resultados en las variables de memoria de tipo float se envan a los objetos JTextField par ser visualizados en el formulario.

La programacin en los botones de comando Borrar y Cerrar es de la misma forma como se aplic en los temas o sesiones anteriores. Cuando procedas a ejecutar tu aplicacin se debe visualizar el formulario y una vez interactuado se mostrarn los resultados.

Ing. Mendoza Corpus Carlos

Pgina 42 de 52

Programacion II Objeto de Control JTable

UNASAM

Como programadores, sabemos muy bien que la presentacin de datos tabulados es una de las tareas ms comunes que se presentan al momento de crear interfaces grficas; desde la simple tabla que permite nicamente mostrar el resultado de una consulta, hasta las que permiten editar directamente el contenido de cada celda, ordenar las columnas, personalizar su apariencia, etc. Todas las tareas antes descritas, y muchas otras, son posibles de realizar utilizando la clase JTable; por supuesto, mientras ms complejo sea el requerimiento a cubrir, se requerir en igual medida utilizar ms mtodos o recursos de la clase. Los modelos de tabla son objetos que implementan la interface TableModel; a travs de ellos es posible personalizar mucho ms y mejor el comportamiento de los componentes Jtable, permitiendo utilizar al mximo sus potencialidades. El siguiente grfico intenta mostrar como cada componente JTable obtiene siempre sus datos desde un modelo de tabla.

La clase AbstractTableModel es la que implementa directamente a la interface TableModel, aunque es esta clase la que se recomienda extender para utilizarla como modelo de tabla, existe un modelo de tabla predeterminado que facilita mucho el trabajo con tablas. Este modelo predeterminado es la clase DefaultTableModel. Propiedad ms usada: Model: Permite definir el nmero de columnas y filas del objeto como tambin las expresiones que irn en las columnas. Mtodos ms usados:

addColumn(): Aade la columna al final de la matriz de columnas. setModel(): Asigna el modelo de datos al objeto JTable. GetRowCount(): Devuelve el nmero de filas en la tabla.

DefaultTableModel Esta clase permite construir el modelo para el objeto Table. Los mtodos ms utilizados son: addColumn(): Aade una columna al modelo. AddRow(): Aade una fila al final del modelo. getColumnCount(): Devuelve el nmero de columnas en esta tabla de datos. getRowCount(): Devuelve el nmero de filas en esta tabla de datos. getValueAt(): Devuelve un valor de atributo para la celda en la posicin row, column. insertRow(): Inserta una fila en el modelo. RemoveRow(): Elimina del modelo segn la posicin de la fila indicada. 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 Ing. Mendoza Corpus Carlos Pgina 43 de 52

Programacion II

UNASAM

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:

Usaremos el mismo proyecto utilizado en la sesin anterior y slo agregars un formulario (Jframe).

Inmediatamente se muestra la siguiente ventana:

Luego dar clic en el botn de comando Finish.

A continuacin se muestra el entorno de desarrollo de NetBeans y no olvides de dar clic en el botn derecho del mouse sobre el formulario y establece AbsoluteLayout en Set Layout.

Ing. Mendoza Corpus Carlos

Pgina 44 de 52

Programacion II

UNASAM

Procedemos a colocar un objeto Jlabel con la expresin CALIFICACIONES DEL CURSO DE PROGRAMACION VISUAL. Debajo de ste ttulo ubicar un objeto Jlabel con la expresin ALUMNO: acompaado de un cuadro de texto (JTextField) . A continuacin, colocar otro Jlabel con la expresin Nota de la I Unidad acompaado de un cuadro de texto y de igual manera hacerlo para la segunda y tercera unidad. Luego agregamos un objeto JCombobox para seleccionar el turno.

Seleccionamos el objeto JComboBox y elegimos en la ventana de propiedades, la propiedad model que permite colocar los tems dentro de la caja de lista desplegadle. Elegimos el botn de comando referido a la propiedad model se muestra la siguiente ventana:

Ing. Mendoza Corpus Carlos

Pgina 45 de 52

Programacion II

UNASAM

Ingresamos <Seleccionar>,Maana, Tarde y Noche y luego hacemos click en el botn de comando OK. Continuamos con el diseo del formulario agregando un botn de comando Agregar y un botn de comando Eliminar. Luego procedemos a agregar el objeto JTable.

Ing. Mendoza Corpus Carlos

Pgina 46 de 52

Programacion II

UNASAM

Al ser dibujado el objeto JTable se observa en el panel de la izquierda que se vincula a un objeto JScrollPane. El objeto Jtable tiene como propiedad principal a model.

Luego de seleccionar el botn de comando referido a la propiedad model se muestra la siguiente ventana:

Ing. Mendoza Corpus Carlos

Pgina 47 de 52

Programacion II

UNASAM

Observamos en la ventana anterior que por defecto el objeto Table propone la conformacin de 4 columnas y 4 filas, dando la posibilidad de aumentar o disminuir el nmero de columnas y filas. Adems podemos establecer los ttulos de cada columna. Aqu debemos hacer hincapi que las columnas y las filas son tipo Object esto quiere decir que un objeto JTable es una matriz de objetos (arreglo bidimensional). Nosotros vamos a establecer el nmero de columnas a travs de la programacin y las filas se crearn en la medida que se necesiten. Los nombres de los objetos de control dibujados en el formulario queda de la siguiente manera:

Vamos a proceder a programar. Comenzamos con hacer uso del paquete swing y especficamente a las clases JoptionPane y a la clase JTable.

Ing. Mendoza Corpus Carlos

Pgina 48 de 52

Programacion II

UNASAM

Luego procedemos a crear un modelo para el objeto JTable llamado Tabla a travs de la clase DefaultTableModel. Lo hacemos dentro de la clase frmNotas. Usar la clase DefaultTableModel es posible gracias al import

javax.swing.table.*;

Declaramos y creamos DefaultTableModel.

una

variable

de

memoria

dtm

del

tipo

En el mtodo constructor programamos lo siguiente (slo escribe lo que se seala la llave de color rojo):

Declaramos y creamos una variable de memoria titulos del tipo cadena y es un arreglo. Esta variable titulos se inicializa con los valores Alumno, I Unidad, II Unidad, III Unidad, Promedio y Turno, que sern los ttulos de las columnas del objeto JTable. Luego, con el mtodo setColumnIdentifiers() se define las columnas con sus respectivos ttulos en la variable dtm (modelo del JTable llamado Tabla). Finalmente, se vincula el modelo, representado en la variable dtm, al objeto JTable llamado Tabla.

Si en estos momentos decidimos ejecutar nuestra aplicacin, quedara nuestro formulario as:

Ing. Mendoza Corpus Carlos

Pgina 49 de 52

Programacion II

UNASAM

Observamos que el objeto JTable muestra las columnas definas en la programacin hecha en el mtodo constructor.

Procedamos con la programacin del botn de comando Agregar (slo escribe lo que se seala la llave de color rojo).

Ing. Mendoza Corpus Carlos

Pgina 50 de 52

Programacion II

UNASAM

Declaramos y creamos una variable de memoria datos de tipo String y de tamao 6. Luego, declaramos las variables de memoria n1, n2, n3 y total de tipo entero, la variable promedio de tipo double y una variable de memoria verifica de tipo booleano. Las variables de memoria n1, n2 y n3 reciben los valores ingresado en los cuadros de textos txtn1, txtn2 y txtn3 respectivamente. Con la variable de memoria verifica se pretende evaluar si se lleg a escribir en los cuadros de textos y se haya seleccionado un turno. Con la sentencia IF evaluamos la variable verifica y con el operador ! hacemos negacin, es decir, si la variable verifica es falso entonces con ! se convierte en verdadero. Si la variable verifica es falso significa que se ingres los datos en los cuadros de textos y se seleccion el turno, entonces procedemos a calcular el promedio teniendo presente que las variables n1,n2, n3 siendo enteras deben ser tratadas como reales (double). Posteriormente, hacemos uso del arreglo datos asignando los datos ingresados y el turno seleccionado en cada uno de los elementos. Con el mtodo addRow() logramos crear una fila con los valores contenidos con el vector o arreglo datos. Luego, limpiamos los cuadros de textos y hacemos que el objeto JComboBox quede en <Seleccionar> al dar el valor cero al mtodo setSelectedIndex(). Si la variable verifica es verdadero significa que falta ingresar algn dato o seleccionar el turno. Finalmente, se muestra la cantidad de filas agregadas en el cuadro de texto txtTotal y haciendo uso del mtodo setRowCount() perteneciente a dtm.

Procedamos con la programacin del botn de comando Eliminar.

Ing. Mendoza Corpus Carlos

Pgina 51 de 52

Programacion II

UNASAM

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.

Procedemos finalmente a ejecutar el formulario.

Ing. Mendoza Corpus Carlos

Pgina 52 de 52

Potrebbero piacerti anche