Está en la página 1de 64

Integrantes:

Jennifer Gonzales.
Christian Verdezoto.
Curso:
2G-1 Ing. En Sistemas

TABLA DE CONTENIDOS
TABLA DE CONTENIDOS............................................................................. 1
TABLA DE ILUSTRACIONES..........................................................................2
INTRODUCCIN........................................................................................... 3
1. TEMA..................................................................................................... 3
2. OBJETIVOS:............................................................................................ 3
3. JUSTIFICACIN...................................................................................... 4
4. ALCANCE............................................................................................... 4
5. MARCO TERICO.................................................................................... 4
PROGRAMACIN GRAFICA..........................................................................4
JFRAME....................................................................................................... 5
GESTORES DE DISTRIBUCION.....................................................................5
JBUTTON:........................................................................................................... 7
JLABEL........................................................................................................ 8
JTEXTFIELD:................................................................................................ 9
JRADIOBUTTON:........................................................................................ 10
ButtonGroup............................................................................................. 11
JPANEL:..................................................................................................... 12
JCHECKBOX............................................................................................... 12
JMENUBAR................................................................................................ 13
Paquetes Utilizados.................................................................................. 16
Import javax.swing.*;................................................................................... 16
Import java.awt.event;................................................................................. 16
Import java.awt.*;........................................................................................ 16
CONSTRUCTOR......................................................................................... 16
VOID CONTENIDOS:.................................................................................. 18
USO DE OYENTES:.................................................................................... 18
MANEJO DE EXEPCIONES PARA EL INGRESO DE DATOS:...........................20
CONSTRUCTOR:........................................................................................ 24
PALABRAS RESERVADAS...........................................................................24
6. Programa............................................................................................... 25
PANTALLA PRINCIPAL................................................................................ 27
Pantalla secundaria (Catlogo).................................................................40

Capturas de pantalla................................................................................ 56
Conclusiones............................................................................................ 59
7. BIBLIOGRAFIA..................................................................................... 60

TABLA DE ILUSTRACIONES
Ilustracin 1: Ejemplo de Flow Layout.........................................................................5
Ilustracin 2: Ejemplo de GridLayout..........................................................................6
Ilustracin 3: Ejemplo de BorderLayout.......................................................................7
Ilustracin 4: Ejemplo de JButton............................................................................... 8
Ilustracin 5: Ejemplo de JLabel................................................................................. 9
Ilustracin 6: Ejemplo de JTextFile............................................................................10
Ilustracin 7: Ejemplo de JRadioButton.....................................................................12
Ilustracin 8: Ejemplo de JPanel...............................................................................12
Ilustracin 9: Ejemplo de JCheckBox.........................................................................13
Ilustracin 10: Ejemplo de JMenuBar........................................................................14
Ilustracin 11: Ejemplo de JMenu.............................................................................15
Ilustracin 12: Ejemplo de Oyentes............................................................................19
Ilustracin 13: Ejemplo de EventListener...................................................................20
Ilustracin 14: Ejemplo Registro de Oyentes................................................................20
Ilustracin 16: Ejemplo de Herencia..........................................................................26

INTRODUCCIN
Por medio de la utilizacin del software a desarrollarse, se expondr varios conocimientos
relacionados con estructuras de datos y la metodologa de programacin grfica.
Mediante la Programacin Grfica se facilita la creacin de software de calidad, basada en el
modo de pensar del hombre y no de la mquina, tambin ayudar a los estudiantes a brindar
una mejor experiencia sobre el manejo con mayor precisin de un programa al usuario.
De esta manera se obtendr conocimientos para poder iniciar un aprendizaje adecuado para
la programacin trabajando con los temas fundamentales, estructuras de control y los pasos
que se debe seguir para poder crear programas con un nivel muy alto en el control de ingreso
de datos.

1. TEMA
Desarrollo de un Sistema de facturacin con Interfaz Grfica al usuario.

2. OBJETIVOS:

Desarrollar una aplicacin que permita una facturacin ordenada, rpida y

amigable con el usuario.


Utilizar los distintos elementos de la paquetera de java para el armado de la

interfaz grafica.
Interactuar con el usuario por medio de los oyentes que desencadenaran en

eventos que nosotros programaremos en base a la teora aprendida en clase.


Validar los datos ingresados por el usuario utilizando Excepciones, para que
no interrumpa el flujo normal de las sentencias durante la ejecucin del
programa, comprobando si es que existe algn error.

3. JUSTIFICACIN
El software que se va a desarrollar, se realiza con la finalidad de que el estudiante
pueda acoplarse fcilmente al ambiente de la programacin, en la cual esta
sustentado los conceptos de la programacin grfica.
Al utilizar mtodo grfico se llega a tener muchas ventajas las cuales como ya se han
dicho crea una interaccin ms dinmica entre el usuario y el ordenador, tambin con
esto se avanza un escaln mas en la programacin dejando un poco de lado la
consola y los cuadros de mensaje en los cuales nos hemos venido desarrollando. .

4. ALCANCE
Mediante la creacin del software podemos desarrollar las aplicaciones de Java
utilizando Herencia, Constructores para saber cul es la relacin que se obtiene en
cada una de las clases y de esta manera desarrollar con ms claridad la solucin de
problemas que se presentan en la vida cotidiana, y as el programador pueda trabajar
con datos extremadamente grandes, como tambin podr buscar datos sin
complicacin.

5. MARCO TERICO
PROGRAMACIN GRAFICA
Es el proceso de construccin de una aplicacin que involucra elementos humanos y
tecnolgicos, que deben ser integrados aplicando tcnicas, modelos y estndares, que
permitan garantizar la construccin de aplicaciones que cumplan los requerimientos
de los usuarios.

JFRAME
El Frame es un contenedor que tiene como tarea guardar nuestros componentes y darles un
sentido grfico, digamos que el Frame es una ventana que tiene propiedades como tamao,
posicin, titulo, etc.

GESTORES DE DISTRIBUCION
Por lo que para determinar la forma en la que se distribuyen los componentes dentro del
contenedor podemos emplear los FlowLayout, GridLayout o los BorderLayout.
Por lo que vamos a empezar con la explicacin de cada uno de los tres.
FlowLayout

Los componentes se van colocando de izquierda a derecha.

Cuando una lnea se completa se pasa a la siguiente.

Mantiene el tamao de los componentes.

Constructor: FlowLayout();

Ilustracin 11: Ejemplo de Flow Layout

GriLayout

Parrilla de celdas iguales que se rellena de izquierda a derecha, lnea a lnea.

Cambia el tamao de los componentes.

El nmero de filas o columnas se indica en el constructor.

El otro parmetro se deja a 0.

Es calculado automticamente por el gestor de distribucin.

Constructor: GridLayout(int filas, int columnas).

Ilustracin 22: Ejemplo de GridLayout

BorderLayout

Coloca los componentes en los 4 puntos cardinales y en el centro.

El del centro se expande para ocupar el mayor rea posible.

El resto ocupan el menor espacio posible.

Constructor: BorderLayout().

El mtodo add tiene un parmetro adicional para indicar la zona: Component


add(Component comp, int index).

Ilustracin 33: Ejemplo de BorderLayout

Index puede tomar los siguientes valores:


BorderLayout.NORTH ; BorderLayout.SOUT ; BorderLayout.WEST, BorderLayout.EAST,
BorderLayout.CENTER
Y hasta aqu la entrega de este lunes. Os adelanto que para la siguiente entrega tenemos
preparado un ejemplo donde podris observar como se utilizan estos gestores y cual es la
apariencia final de una GUI

JBUTTON:
La clase JButton proporciona un botn visible que los desarrolladores pueden aadir a
cualquier interfaz de usuario en Java, ajustando su apariencia y comportamiento para
adaptarla a las necesidades de un proyecto. Los desarrolladores pueden crear mltiples
elementos JButton dentro de un nico programa de Java, dando a cada uno un rol especfico
segn sea necesario.
La funcin de un JButton es crear un botn visible dentro de una aplicacin de interfaz
grfica de usuario en Java. El JButton permite a los programadores dictar el texto que
aparece en el botn y el momento en el que aparece dentro de la interfaz general. Usando
mtodos adicionales dentro del lenguaje Java los programas tambin pueden proporcionar
respuestas detalladas a la interaccin del usuario con un JButton. Los JButtons se encuentran
entre los muchos elementos de interfaz de usuario posibles en Java.

Ilustracin 44: Ejemplo de JButton

JLABEL
Con la clase JLabel, se puede mostrar texto no seleccionable e imgenes. Si necesitamos
crear un componente que muestre un sencillo texto o una imagen, reaccionando
opcionalmente a la entrada del usuario, podemos hacerlo utilizando un ejemplar de JLabel o
de una subclase personalizada de JLabel. Si el componente interactivo tiene estado,
pobablemente deberamos utilizar un button en vez de una etiqueta.

Aqu podemos ver una imagen de una aplicacin que muestra tres etiquetas. La ventana est
dividida entres filas de la misma altura, la etieueta de cada fila es lo ms ancha posible.
De todos los componentes de interfaz de usuario que proporciona Java, lasetiquetas son, sin
lugar a duda, los ms sencillos. Las etiquetas se utilizan parasituar fragmentos de text o o
imgenes en la pantalla, de manera que su uso mscomn es dar ttulo a otras reas o a otros
componentes Swing.
Las etiquetas presentan 3 formas de alineamiento:
LEFT o izquierda (JLabel.LEFT).
CENTER o centrada(JLabel.CENTER).
RIGHT o derecho (JLabel.RIGTH).
Un ejemplo de la utilizacin de este componente podra ser el siguiente en el que se
muestran las distintas construcciones del componente JLabel:
Mtodos Constructores
Mtodos

Descripcin

JLabel()

Crea una etiqueta.

JLabel(Icon)

Crea una etiqueta con la imagen indicada.

JLabel(Icon,int)

Crea una etiqueta con la imagen


alineamiento indicados. Puede ser
CENTER y RIGHT.

JLabel(String)

Crea una etiqueta con el texto indicado.

JLabel(String,int)

Crea una etiqueta con el texto y alineamiento


indicados.

JLabel(String,Icon,int)

Crea una etiqueta con el texto, imagen y


alineamiento indicados.

y el
LEFT,

Ilustracin 55: Ejemplo de JLabel

JTEXTFIELD:
Los campos de texto o textfield se utilizan cuando se necesita un rea donde el usuario
pueda introducir un fragmento relativamente pequeo de informacin, como el nombre, un
identificador etc.

10

Ilustracin 66: Ejemplo de JTextFile

JRADIOBUTTON:
Los Botones de Radio son grupos de botones en los que, por convencin, slo uno de ellos
puede estar seleccionado. Swing soporta botones de radio con las clases JRadioButton y
ButtonGroup.

Mtodos constructores

Mtodos

Descripcin

JRadioButton()

Crea un JRadioButton sin texto y no


seleccionado.

JRadioButton(Action)

Crea un RadioButton especificando el


escuchador de eventos que tendr
asociado.

JRadioButton(String)

Crea un RadioButton
determinado.

JRadioButton(String,boolean)

Crea un RadioButton especificando el


texto y elestado, seleccionado o no
seleccionado (true o false)

JRadioButton(Icon)

Crea un RadioButton con una imagen, sin


texto ysin seleccionar.

con

un

texto

11

JRadioButton(Icon,boolean)

Crea un RadioButton con la imagen


seleccionada
y
el
estado
(true
seleccionado, false noseleccionado)

JRadioButton(String, Icon)

Crea un RadioButton no seleccionado con


untexto y con la imagen espeficificada

JRadioButton(String, Icon,boolean)

Crea un RadioButton especificando un


texto, unaimagen y el estado

ButtonGroup
Esta clase se usa para crear un conjunto de botones con exclusin entre ellos, esdecir,
cuando se seleccione un botn, todos los dems se deseleccionarn automticamente.
Este componente pude usarse con cualquierconjunto de objetos herede de la
claseAbstractButton. Normalmente se utiliza parainstancias de JRadioButton.
JRadioButtonMenuItem o JToggleButton. Nose podr utilizar con instancias decomponentes
como JButton o JMenuItem yaque stos no implementan ningn mtodo
para obtener su estado de seleccin (si est ono seleccionado).
Inicialmente todos los botones en un grupo no estn seleccionados. Una vez que se
seleccione uno, a partir de ah, siempre habr uno de ellos seleccionado.
Hay que resaltar que cuando se define un ButtonGroup no se est definiendo un componente
nuevo, simplemente se est indicando que el conjunto de componentes que lo componen
tienen las caractersticas que se han indicado anteriormente. A la hora de insertarlo en la
ventana habr que insertar cada uno delos botones, no se podr insertar el grupo de botones
creado ya que como tal no existe.

12

Ilustracin 77: Ejemplo de JRadioButton

JPANEL:
Los JPanel en Java son objetos contenedores, la finalidad de estos objetos es la agrupacin
de otros objetos tales como botones, campos de texto, etiquetas, selectores, etc; una gran
ventaja de Usar JPanel en Java es que podemos manejar la agrupacin de una mejor forma,
supongamos que tenemos una serie de botones en un panel, y deseamos desactivarlos todos
a las vez, en lugar de hacerlo individualmente con los botones, podemos desactivar el panel
y con esto los botones.

Ilustracin 88: Ejemplo de JPanel

13

JCHECKBOX
Los CheckBox son similares a los RadioButton con la excepcin de que en stos s puede
haber ms de uno de ellos seleccionado, o ninguno.
Swing tambin permite insertar este tipo de componentes en mens. Esto se consigue a
travs de la clase JCheckBoxMenuItem
Tanto la clase JCheckBox, como la clase JChekBoxMenuItem, son subclases de
AbstractButton, por lo que heredan su funcionalidad.

Ilustracin 99: Ejemplo de JCheckBox

JMENUBAR
Para empezar debemos conocer los JComponents que estn involucrados para poder crear la barra de men

Ilustracin 1010: Ejemplo de JMenuBar

14

Como muestra la imagen, una barra de menu se compone de:

JMenuBar: Es la barra de men principal. Una barra horizontal alargada en la que


se colocarn las distintas opciones.

JMenu: Es una de las cosas que se pueden aadir a un JMenuBar o a otro JMenu.
Cuando aadimos uno de estos, tendremos un algo que al pinchar despliega un nuevo
men.

JMenuItem: Es una opcin del JMenu que cuando lo pinchas hace algo

JMENU BAR
Este componente es muy til ya que representa la barra de men que vemos siempre en todo
programa y es muy til para acceder a la informacin de forma ms fcil y organizada..

15

Ilustracin 1111: Ejemplo de JMenu

JMENU
Un men es un objeto que se le aade al JMenuBar, y sirve para almacenar items comunes.
Ahora veremos como crear un men.

JMENUITEM
Un JMenuItem es un elemento del men y al ser pulsado genera un evento, o sea, abre una
ventana, pide datos o cualquier evento.

JList
El JList es un componente que permite seleccionar un o varios tems de un panel
desplegable. Es muy til cuando queremos mostrar el contendido de una lista para que el
usuario pueda seleccionar dichos items.
Todo JList esta compuesto por un DefaultListModel, es el que define el modelo de la JList,
es decir, el que agregar y borrar los tems de la JList.
Crear un JList

16

Agregar elementos a un JList.


Hay varias formas de hacerlo, pero la mas eficiente desde nuestro punto de vista es usar el
DefaultListModel, ya que tiene el mtodo addElement que inserta un elemento a la vez:

Eliminando elementos
Se pueden eliminar elementos de cualquier posicin, utilizando una variable del tipo int para
guardar las posiciones en la lista y para eliminar tem a tem, lo va a eliminar previo haber
seleccionado el tem incluso, se puede eliminar varios tems que estn en la misma fila
siempre y cuando se llame en el mtodo eliminar a sus modelList correspondientes:

Paquetes Utilizados

Los paquetes son una forma de organizar grupos de clases. Un paquete contiene un
conjunto de clases relacionadas bien por finalidad, por mbito o por herencia.

Los paquetes resuelven el problema del conflicto entre los nombres de las clases. Al
crecer el nmero de clases crece la probabilidad de designar con el mismo nombre a
dos clases diferentes.

Las clases tienen ciertos privilegios de acceso a los miembros dato y a las funciones
miembro de otras clases dentro de un mismo paquete.

17

Import javax.swing.*;
Provee de facilidades al usuario para construir GUIs abarca componentes tales como
botones (JButton) , etiquetas (JLabel) , cajas de texto (JTextField), elementos que nos
permiten una interaccin dinmica entre usuario y ordenador.

Import java.awt.event;
Este paquete, proporciona a las interfaces y clases los distintos eventos que pueden ocurrir
en una ejecucin de un programa y que son desencadenados por los componentes de AWT.

Import java.awt.*;
La funcin que va a tener este paquete es para el gestor de distribucin el cual nos va a
permitir ubicar los elementos en el JFrame de manera ordenada.

CONSTRUCTOR
Un constructor es un mtodo especial de una clase que se llama automticamente siempre
que se declara un objeto de esa clase.
Su funcin es inicializar el objeto y sirve para asegurarnos que los objetos siempre
contengan valores vlidos.

Cuando se crea un objeto en Java se realizan las siguientes operaciones de forma automtica:
1. Se asigna memoria para el objeto.
2. Se inicializan los atributos de ese objeto con los valores predeterminados por el sistema.
3. Se llama al constructor de la clase que puede ser uno entre varios.
El constructor de una clase tiene las siguientes caractersticas:
Tiene el mismo nombre que la clase a la que pertenece.

18

import javax.swing.JFrame;
public class Main extends JFrame {
public static void main(String[] args) {
new Main();
}
public Main() {
this.setSize(200, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Hello World!");
this.setVisible(true);
}
}

SETRESIZABLE.-Al activar esto la pantalla no podr maximizarse


SETLAYOUT.- Al declararle null, nosotros podremos declarar la posicin de los

objetos que irn dentro de nuestra ventana


JFRAME( ).- Es el constructor de nuestro frame, aparece sin titulo y no puede verse
en pantalla hasta que se llame el metodo para hacerlo visible.

SETVISIBLE(BOOLEANO).- Define si nuestro JFrame puede verse o no, y


nicamente acepta valores booleanos como TRUE o FALSE.

SETTITLE(STRING B).- Define el nombre del frame (el titulo), y lo que acepta es
una cadena para nombrarla.

SETSIZE (INT ANCHO, INT LARGO).- Es la definicin del ancho y largo del
frame que vamos a crear.

PACK( ) Redefine la ventana para que entre en un espacio determinado.

SETLOCATION (INT HORIZONTAL, INT VERTICAL).- Definicin de la


posicin en pantalla donde va a estar nuestro frame una vez que lo creemos.

SETDEFAULTCLOSEOPERATION(INT OPERATION) .- Define la operacin


que va a tener la ventana con el boton de cerrar.

19

VOID CONTENIDOS:
-

Es un mtodo especial en el crearemos las funciones que posee la ventana.

Creamos botones y les podemos aadir acciones, esto nos permite tener una mejor
interaccin con el usuario.

USO DE OYENTES:

Un

eventos son objetos.


Los componentes (botones, mens, campo de texto) son generadores de eventos

(origen)
Un origen de eventos debe registrar objetos oyentes que manipulen a los eventos

evento es resultado de la ejecucin de una accin dentro de un entorno grfico. Los

Ilustracin 1212: Ejemplo de Oyentes

El paquete java.awt.event proporciona clases base para generar eventos.


Contiene una serie de interfaces para implementar objetos oyentes.
Adicionalmente proporciona un grupo de clases adaptadoras para facilitar la
codificacin.

20

Ilustracin 1313: Ejemplo de EventListener

REGISTRO DE OYENTES

21

Ilustracin 1414: Ejemplo Registro de Oyentes

MANEJO DE EXEPCIONES PARA EL INGRESO DE DATOS:


La estructura de control en cuestin se usa para capturar el flujo de datos cuando, por la
intervencin del usuario o de algn dispositivo externo, sucede un error. Por ejemplo,
supongamos una aplicacin de frmulas matemticas en la que el usuario debe ingresar
valores numricos, lo que normalmente sucede es que el sistema recibir cadenas que
debern ser convertidas a un tipo til para las operaciones; pero si el usuario ingresa algo
distinto a un dgito o a un operador, el programa fallar.

22

importjavax.swing.JOptionPane;
public class DemoErrorNumero {
String mensaje;
publicDemoErrorNumero() {
String valorCadena=JOptionPane.showInputDialog(null,"Escribe
un entero");
/*El mtodo parseInt() de la clase Integer de la librera lang
*convierte un String en un int
*/
intvalorNumero=Integer.parseInt(valorCadena);
JOptionPane.showMessageDialog(null,"El valor es
"+valorCadena);
}
publicstaticvoidmain(String[] args) {
newDemoErrorNumero();
}}

Al ejecutar este programa, si en el primer cuadro de dilogo escribimos un entero, aparecer


un segundo cuadro de dilogo indicando el valor; si, por el contrario, escribimos otra cosa, el
programa se detiene y en la ventana de General Output de JCreator se mostrar el siguiente
mensaje:

--------------------Configuration: -------------------Exception in thread "main" java.lang.NumberFormatException: For input


string: "Juanito"
at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:
48)
atjava.lang.Integer.parseInt(Integer.java:447)
atjava.lang.Integer.parseInt(Integer.java:497)
atDemoErrorNumero.(DemoErrorNumero.java:6)
atDemoErrorNumero.main(DemoErrorNumero.java:10)

23

La lnea que esta subrayada indica cul fue el error: la cadena Juanito (que fue lo que
recibi la variable valorCadena) tiene un formato numrico incorrecto; java.lang es la
librera en la que est la clase NumberFormatException que es capaz capturar esos errores y
se usa con el trycatch como se muestra en el siguiente ejemplo:

DemoTryCatch.java
importjavax.swing.JOptionPane;
public class DemoTryCatch {
String mensaje;
publicDemoTryCatch() {
String valorCadena=JOptionPane.showInputDialog(null,"Escribe un
entero");
try {
intvalorNumero=Integer.parseInt(valorCadena);
/*Si lo escrito no es un entero la lnea que sigue no se ejecuta,
*el programa busca el bloque catch y ejecuta su contenido
*/
mensaje="Gracias";
}
catch (NumberFormatException ex) {//El bloque catch indica
el error que captura.
mensaje="No escribiste un Entero";
}
JOptionPane.showMessageDialog(null,mensaje);
//El mensaje enviado segn el caso
}
public static void main(String[] args) {
newDemoTryCatch();
}}

Se debe saber que existe la clase Exception que captura todos los errores, y que derivadas de
ella hay muchas otras para atender faltas especficas, como el caso que acabamos de probar.

PARA QUE SOLO INGRESE LETRAS


nom=new JLabel("Nombre del cliente");
nom.setForeground(Color.white);
nom.setBounds(new Rectangle (10,50,300,20));
add(nom);
nombre= new JTextField(30);
nombre.setBackground(Color.lightGray);
nombre.setBounds(new Rectangle (120,48,420,30));
nombre.addKeyListener(new KeyAdapter (){

24

public void keyTyped(KeyEvent e){


charcaracter;
caracter=e.getKeyChar();
if(Character.isDigit(caracter)){
e.consume();
JOptionPane.showMessageDialog(null," INGRESE LETRAS POR
FAVOR","Error",JOptionPane.WARNING_MESSAGE);
}}});
add(nombre);

PARA QUE SOLO INGRESE NUMEROS


cedu= new JLabel("CI/RUC");
cedu.setForeground(Color.white);
cedu.setBounds(new Rectangle (330,90,300,20));
add(cedu);
cedula= new JTextField(15);
cedula.setBounds(new Rectangle (380,90,160,30));
cedula.addKeyListener(new KeyAdapter(){
public void keyTyped(KeyEvent e){
charcaracter;
caracter= e.getKeyChar();
if(Character.isLetter(caracter)){
e.consume();//isnumber
JOptionPane.showMessageDialog(null,"
INGRESE
FAVOR","Error",JOptionPane.WARNING_MESSAGE);

NUMEROS

POR

}
}
});
add(cedula);

25

CONSTRUCTOR:
El constructor de una clase es un mtodo estndar para inicializar los objetos de esa
clase. Es una funcin que se ejecuta siempre al crear un objeto. Los constructores de
una clase tienen siempre el nombre de la clase y no tiene ningn valor devuelto, para
poder inicializar las variables de instancia utilizan la palabra reservada this1.

Ilustracin 15: Ejemplo de uso de Constructores

PALABRAS RESERVADAS
THIS: Es una palabra reservada que nos sirve para poder manipular las variables de
instancia que estn declaradas en el programa.
SUPER: Es una palabra reservada que se utiliza para llamar a los atributos que estoy
heredando o a los constructores que ya estn inicializados en la clase padre.
EXTENDS: Es una palabra reservada que nos sirve para utilizar los mtodos ya
creados en la clase padre.
HERENCIA
Es especfica de la programacin orientada a objetos, donde una clase nueva se crea
a partir de una clase existente, haciendo una relacin entre las clases bases y clases
derivadas que comparten la estructura y comportamiento definido.
La principal ventaja de la herencia es la capacidad para definir atributos y mtodos
nuevos para la subclase, es comn que se le aada su propio comportamiento o que
modifique lo heredado, al heredar de una clase base, heredaremos tanto los atributos

1this: es una palabra reservada que permite manipular las variables de instancia ya
declaradas en el programa.

26

como los mtodos y de la misma manera podemos modificar con atributos propios de
la clase derivada de esta manera utilizamos los constructores que no son heredados.
Ejemplo:

Ilustracin

1615: Ejemplo

de Herencia

6. Programa.

Crear un
programa con
interfaz grafica al usuario de un sistema de facturacin de una tienda virtual
utilizando los paquetes y elementos de los mismos aadiendo la utilizacin de un
JList y JRadioButton para este programa se debe estimar lo siguiente:

Validar los campos de texto estn validados para captura de errores, es decir en los
campos donde solo deba ingresar letras no permita el ingreso de nmeros y en los
campos donde solo admita caracteres numricos que no permita el ingreso de letras y
smbolos.

Programar los JRadioButton para que solo se seleccione 1 y no ambos.

Validar los JTextField de las cantidades Sub-total, iva , recargo, descuento y total
para que no se puedan modificar desde el teclado es decir que no podamos editar
nada.

Programar la cantidad y los precios de los productos, en caso de que el cliente sea
frecuente obtiene un descuento del 20% y si no es frecuente no obtiene descuento
(Esto debe estar validado dentro de los JRadioButton).

Para los campos de cliente moroso y no moroso si es moroso el cliente tiene un


recargo del 10% caso contrario no tiene recargo.

Validar las listas para que se ubiquen cantidad de productos, descripcin del
producto, precio unitario y total.

Programar la lista para que se la pueda manejar borrando tems en caso del ser
necesario.

El sistema de facturacin debe tener un botn para crear una nueva factura y que
estas a su vez se vayan guardando.

27

Para finalizar el sistema debe tener consultas de factura en el cual llamaremos a las
facturas segn el numero que correspondan y estas debern desplegar la informacin
sobre la compra, para esto la informacin deber ser guardada en vectores de tipo
String[] o en un archivo txt(fichero) segn como mejor convenga.

28

PANTALLA PRINCIPAL
package Factura;
import javax.swing.*;
import java.util.Calendar;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.CharConversionException;
import javax.swing.border.*;
import javax.swing.plaf.basic.BasicBorders.RadioButtonBorder;
public class Futbol extends JFrame{
JLabel fondo,nombre,direccion,ruc,telf,fecha,hora,f,h,can,prod,tcli,moroso,sub,iv,tip,tot,re;
JRadioButton tc,tcn,mor,nmor;
JTextField nom,dir,r,te,subtotal,iva,tipocliente,total,reca,ver;
JButton compra,viz,catalogo,borra,borrarItem,nuevo,guardar,traer;

JList cantidad,productos,precio,totpre;
DefaultListModel modelc=new DefaultListModel();
DefaultListModel modelpro=new DefaultListModel();
DefaultListModel modelpre=new DefaultListModel();
DefaultListModel modeltot=new DefaultListModel();

int conta=1;
double g;
double c1,c2,c3,c4;
double rec;
double descu;
double impuesto;
double tota;
int c;
String acum="",acum2="";

//Catalogo k;
String facturas[]=new String[100000];
String despelgar;
public Futbol(){
setTitle("Ftbol Ecuador--------------------FACTURA No: "+(c=c+1));
setSize(1000,600);
setLocation(100,100);
setResizable(false);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setIconImage(Toolkit.getDefaultToolkit().getImage("fut.png"));

29

contenidos();

setVisible(true);
}
void contenidos(){
setTitle("Ftbol Ecuador--------------------FACTURA No: "+(c++));
final ButtonGroup TCLIENTE;
final ButtonGroup MOROSIDAD;
fecha=new JLabel("Fecha");
fecha.setBounds(760,10,110,30);
fecha.setFont(new Font("Showcard Gothic",Font.ITALIC,13));
fecha.setForeground(Color.yellow);
add(fecha);
f=new JLabel();
f.setBounds(850,10,160,30);
f.setForeground(Color.yellow);
f.setFont(new Font("Showcard Gothic",Font.BOLD,13));
Calendar cal=Calendar.getInstance();
String fec=cal.get(cal.DATE)+"/"+cal.get(cal.MONTH)+"/"+cal.get(cal.YEAR);
f.setText(fec);
add(f);
hora=new JLabel("Hora");
hora.setBounds(760,30,110,30);
hora.setFont(new Font("Showcard Gothic",Font.ITALIC,13));
hora.setForeground(Color.blue);
add(hora);
h=new JLabel("");
h.setBounds(850,30,160,30);
h.setFont(new Font("Showcard Gothic",Font.BOLD,13));
h.setForeground(Color.red);
String hor=cal.get(cal.HOUR_OF_DAY)+":"+cal.get(cal.MINUTE)+":"+cal.get(cal.SECOND);
h.setText(hor);
add(h);
//DATOS PERSONALES DEL CLIENTE
nombre=new JLabel("Nombre");
nombre.setForeground(Color.white);
nombre.setFont(new Font("Broadway",Font.BOLD,13));
//setFont(new Font("Broadway",Font.BOLD,20));
nombre.setBounds(30,50,120,40);
add(nombre);
nom=new JTextField("");
nom.setFont(new Font("Comic Sans MS",Font.BOLD,15));
nom.setBounds(100,60,260,30);
nom.addKeyListener(new KeyAdapter() {

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
char carac;

30

carac=e.getKeyChar();

if(!Character.isLetter(carac)){
e.consume();
JOptionPane.showMessageDialog(null,"Solo debe ingresar letras en el campo
NOMBRE","ERROR",JOptionPane.ERROR_MESSAGE );
}

});
add(nom);
direccion=new JLabel("Direccin");
direccion.setBounds(30,100,120,30);
direccion.setForeground(Color.white);
direccion.setFont(new Font("Broadway",Font.BOLD,13));
add(direccion);

dir=new JTextField("");
dir.setBounds(110,100,310,30);
dir.setFont(new Font("Comic Sans MS",Font.BOLD,15));
dir.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
char c;
c=e.getKeyChar();
if(Character.isDigit(c)){
e.consume();
JOptionPane.showMessageDialog(null,"Solo debe ingresar letras en el campo
DIRECCIN","ERROR",JOptionPane.ERROR_MESSAGE );
}
}

});
add(dir);
ruc=new JLabel("Ruc");
ruc.setBounds(400,50,60,40);
ruc.setForeground(Color.white);
ruc.setFont(new Font("Broadway",Font.BOLD,13));
add(ruc);
r=new JTextField("");
r.setBounds(450,60,150,30);
r.setFont(new Font("Comic Sans MS",Font.BOLD,15));

31

r.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
char c;
c=e.getKeyChar();
if(!Character.isDigit(c)){
e.consume();
JOptionPane.showMessageDialog(null, "Solo ingrese nmeros en el campo
RUC","ERROR",JOptionPane.ERROR_MESSAGE);
}
}
});
add(r);
telf=new JLabel("Telfono");
telf.setBounds(430,100,120,30);
telf.setForeground(Color.white);
telf.setFont(new Font("Broadway",Font.BOLD,13));
add(telf);
te=new JTextField(7);
te.setBounds(510,100,100,30);
te.setFont(new Font("Comic Sans MS",Font.BOLD,15));
te.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
char c;
c=e.getKeyChar();
if(!Character.isDigit(c)){
e.consume();
JOptionPane.showMessageDialog(null, "Solo ingrese nmeros en el campo
TELFONO","ERROR",JOptionPane.ERROR_MESSAGE);
te.setText("");
}
}
});
add(te);
//boton borrar campos,nuevo,borrarItem
borra=new JButton("Borrar campos");
borra.setBounds(620,80,120,30);
borra.setToolTipText("Borra totalmente los datos personales");
borra.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==borra){
nom.setText("");
dir.setText("");
r.setText("");
te.setText("");
}

32

}
});
add(borra);
nuevo=new JButton();
nuevo.setBounds(750,80,70,70);
nuevo.setToolTipText("Nueva Factura");
nuevo.setIcon(new ImageIcon(getClass().getResource("nuevo2.png")));
nuevo.setContentAreaFilled(false);
nuevo.setBorderPainted(false);
nuevo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setTitle("Ftbol Ecuador--------------------FACTURA No: "+(c++));
g=0;
descu=0;
rec=0;
nom.setText("");
dir.setText("");
r.setText("");
te.setText("");
subtotal.setText("");
iva.setText("");
total.setText("");
reca.setText("");
tipocliente.setText("");
tipocliente.setText("");
conta++;
modelc.removeAllElements();
modelpre.removeAllElements();
modelpro.removeAllElements();
modeltot.removeAllElements();
}
});
add(nuevo);
traer=new JButton("Traer");
traer.setBorderPainted(false);
traer.setContentAreaFilled(false);
traer.setIcon(new ImageIcon(getClass().getResource("ver3.png")));
traer.setBounds(840,280,93,30);
traer.setToolTipText("Consultar facturas");
traer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String numbe="";
boolean b=false;
int num;
if(e.getSource()==traer){
if(ver.getText().equals("")){
JOptionPane.showMessageDialog(null, "Debe ingresar en nmero de
factura","Atencion",JOptionPane.WARNING_MESSAGE);
}else{

33

numbe=ver.getText();
num=Integer.parseInt(numbe);
if(facturas[num-1]==null){
JOptionPane.showMessageDialog(null,"La factura no ha sido
guardada");
}else{
JOptionPane.showMessageDialog(null, facturas[num1]);
//despelgar=facturas[i]+"\n";

}
}

}
}
});
add(traer);
ver=new JTextField();
ver.setBounds(940,280,30,30);
ver.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
char c;
c=e.getKeyChar();
if(!Character.isDigit(c)){
e.consume();
JOptionPane.showMessageDialog(null, "Ingrese el nmero de factura que desea
consultar","ATENCION",JOptionPane.WARNING_MESSAGE);
}
}
});
add(ver);
guardar=new JButton("Guardar");
guardar.setBounds(840,320,80,110);
guardar.setToolTipText("Guardar");
guardar.setBorderPainted(false);
guardar.setContentAreaFilled(false);
guardar.setIcon(new ImageIcon(getClass().getResource("save2.png")));
guardar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==guardar){
String valor1="", valor2="", valor3="", valor4;//Valores que estan en subtotal, iva,
recargo, descuento

34

double v1, v2, v3, v4, total_pagar;//para transformar los valores y sacar el total
if(nom.getText().equals("")||dir.getText().equals("")||te.getText().equals("")||
r.getText().equals("")){
JOptionPane.showMessageDialog(null, "No hay nada que guardar");
}else{
valor1=subtotal.getText();
valor2=iva.getText();
valor3=reca.getText();
valor4=tipocliente.getText();
v1=Double.parseDouble(valor1);
v2=Double.parseDouble(valor2);
v3=Double.parseDouble(valor3);
v4=Double.parseDouble(valor4);
acum=acum+("Factura #"+conta+"\n\n");
acum=acum+("DATOS CLIENTE\n");
acum=acum+("NOMBRE: "+nom.getText()+"\n");
acum=acum+("RUC: "+r.getText()+"\n");
acum=acum+("DIREC: "+dir.getText()+"\n");
acum=acum+("-------------------PRODUCTOS---------------------------------------s");
acum=acum+("Cant
Desc
SUbt total"+"\n");

precioUnit

for(int i=0;i<modelc.size();i++){
acum=acum+(modelc.get(i)+" "+ modelpro.get(i)+"
"+modelpre.get(i)+"

"+modeltot.get(i)+"\n");
}
acum=acum+("---VALORES----\n\n");
acum=acum+("Subtotal= "+subtotal.getText()+"\n");
acum=acum+("Iva= "+iva.getText()+"\n");
acum=acum+("Recargo= "+reca.getText()+"\n");
acum=acum+("Descuento= "+tipocliente.getText()+"\n");
acum=acum+("TOTAL= "+total.getText());
facturas[conta-1]=acum;
System.out.println(conta+" ");
acum="";
acum2="";
}
}

}
});
add(guardar);
borrarItem = new JButton("Eliminar item");
borrarItem.setBounds(620,120,120,30);
borrarItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
int item=productos.getSelectedIndex();
if(item!= -1){
modelpro.removeElementAt(item);
modelc.remove(item);
modelpre.remove(item);
modeltot.remove(item);
}else {
JOptionPane.showMessageDialog(null,"Selecciones un items" );

35

}
}
});
add(borrarItem);
//TIPO DE CLIENTE
tcli=new JLabel("Tipo de cliente");
tcli.setBounds(10,140,120,30);
tcli.setForeground(Color.white);
tcli.setFont(new Font("Broadway",Font.ITALIC,13));
add(tcli);

tc=new JRadioButton("Frecuente");
tc.setToolTipText("Obtiene un descuento del 20% en la compra total");
tc.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==tc){
descu=(g*0.20);
}else{
descu=0;
}
}
});
tc.setBounds(150,140,90,30);
add(tc);
tcn=new JRadioButton("No-Frecuente");
tcn.setToolTipText("No obtiene descuento");
tcn.setBounds(240,140,120,30);
tc.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==tc){
descu=0;
}
}
});
add(tcn);
TCLIENTE= new ButtonGroup();
TCLIENTE.add(tc);
TCLIENTE.add(tcn);
mor=new JRadioButton("Moroso");
mor.setBounds(400,140,90,30);
mor.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {

36

// TODO Auto-generated method stub


if(mor.isSelected()){
rec=g*0.10;
}else{
rec=0;
}
}
});
add(mor);
nmor=new JRadioButton("No-Moroso");
nmor.setBounds(490,140,120,30);
nmor.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(mor.isSelected()){
rec=0;
}
}
});
add(nmor);
MOROSIDAD=new ButtonGroup();
MOROSIDAD.add(mor);
MOROSIDAD.add(nmor);

//PARTE DONDE SE UBICAN LOS PRECIOS Y DESCRIPCIONES DE LOS PRODUCTOS


//--IMPORTANTE CADA ETIQUETA TIENE SU ELEMENTO CORRESPONDIENTE EN LAS
COORDENADAS
can=new JLabel();
can.setBounds(30,200,90,35);
can.setIcon(new ImageIcon(getClass().getResource("cart.png")));
add(can);
prod=new JLabel("Productos/Descripcin
Precio Unit. Total-Prod");
prod.setForeground(Color.white);
prod.setBounds(200,210,530,35);
prod.setFont(new Font("Comic Sans MS",Font.BOLD,15));
add(prod);
//------ ATENCION MANEJO DE JList------------cantidad=new JList();
cantidad.setBounds(40,250,60,150);
//cantidad.setEditable(true);
cantidad.setBackground(Color.lightGray);
cantidad.setModel(modelc);
add(cantidad);
productos=new JList();
//productos.setEditable(true);
productos.setBounds(100,250,400,150);
productos.setModel(modelpro);
productos.getSelectedIndex();

37

add(productos);
precio=new JList();
precio.setBounds(500,250,90,150);
precio.setBackground(Color.lightGray);
precio.setModel(modelpre);
add(precio);
totpre=new JList();
totpre.setBounds(590,250,100,150);
totpre.setBackground(Color.white);
totpre.setModel(modeltot);
add(totpre);

//SECCION RESULTADOS FINALES DE LA FACTURA


sub=new JLabel("Sub-total:");
sub.setBounds(500,410,100,20);
sub.setForeground(Color.LIGHT_GRAY);
sub.setFont(new Font("Broadway",Font.ITALIC,15));
add(sub);
subtotal=new JTextField();
subtotal.setBounds(590,410,100,20);
subtotal.setEditable(false);
subtotal.setHorizontalAlignment(JTextField.RIGHT);
subtotal.setFont(new Font("Comic Sans MS",Font.BOLD,13));
add(subtotal);
iv=new JLabel("Iva % :");
iv.setBounds(510,440,100,20);
iv.setForeground(Color.LIGHT_GRAY);
iv.setFont(new Font("Broadway",Font.ITALIC,15));
add(iv);
iva=new JTextField();
iva.setBounds(590,440,100,20);
iva.setEditable(false);
iva.setHorizontalAlignment(JTextField.RIGHT);
iva.setFont(new Font("Comic Sans MS",Font.BOLD,10));
add(iva);
tip=new JLabel("Tipo Cliente:");
tip.setBounds(470,470,130,20);
tip.setForeground(Color.LIGHT_GRAY);
tip.setFont(new Font("Broadway",Font.ITALIC,15));
add(tip);
tipocliente=new JTextField();
tipocliente.setBounds(590,470,100,20);
tipocliente.setEditable(false);
tipocliente.setHorizontalAlignment(JTextField.RIGHT);
tipocliente.setFont(new Font("Comic Sans MS",Font.BOLD,13));
add(tipocliente);
re=new JLabel("Recargo:");
re.setForeground(Color.LIGHT_GRAY);

38

re.setBounds(510,500,100,20);
re.setFont(new Font("Broadway",Font.ITALIC,15));
add(re);
reca=new JTextField();
reca.setBounds(590,500,100,20);
reca.setFont(new Font("Comic Sans MS",Font.BOLD,13));
reca.setHorizontalAlignment(JTextField.RIGHT);
reca.setEditable(false);
add(reca);
tot=new JLabel("TOTAL :");
tot.setBounds(510,530,100,20);
tot.setForeground(Color.LIGHT_GRAY);
tot.setFont(new Font("Broadway",Font.ITALIC,15));
add(tot);
total=new JTextField();
total.setBounds(590,530,130,30);
total.setEditable(false);
total.setHorizontalAlignment(JTextField.RIGHT);
total.setFont(new Font("Comic Sans MS",Font.BOLD,10));
add(total);
//SECCION DE BOTONES UBICADOS PARTE INFERIOR IZQUIERDA
compra=new JButton();
compra.setBounds(40,450,117,40);
compra.setToolTipText("Hacer compra");
compra.setIcon(new ImageIcon(getClass().getResource("compra.png")));
compra.setContentAreaFilled(false);
compra.setBorderPainted(false);
//Bzadtiempo.setContentAreaFilled(false);
//Bzadtiempo.setBorderPainted(false);
compra.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//||tc.isSelected(false)||!tcn.isSelected()||!mor.isSelected()||!nmor.isSelected()
if(nom.getText().equals("")||dir.getText().equals("")||te.getText().equals("")||
r.getText().equals("")||TCLIENTE.isSelected(null)||MOROSIDAD.isSelected(null)){
JOptionPane.showMessageDialog(null, "Debe llenar los campos para continuar con
su compra","Atencion",JOptionPane.WARNING_MESSAGE);
}else{
for(int i=0;i<modeltot.getSize();i++){
g=g+Double.parseDouble(modeltot.getElementAt(i)+"");
}
subtotal.setText(g+"");
if(mor.isSelected()){
rec=g*0.10;
total.setText(""+(g+rec));
}
if(nmor.isSelected()){
rec=0;
total.setText(""+(g+rec));

39

}
if(tc.isSelected()){
descu=g*0.20;
total.setText(""+(g-descu));
}
if(tcn.isSelected()){
descu=0;
total.setText(""+(g-descu));
}
subtotal.setText(""+g);
impuesto=g*0.12;
tota=((g+impuesto+rec)-descu);
iva.setText(""+impuesto);
reca.setText(""+rec);
tipocliente.setText(""+descu);
total.setText(""+tota);

}
});
add(compra);

catalogo=new JButton();
catalogo.setBounds(280,450,91,50);
catalogo.setToolTipText("Ver el catlogo de compras");
catalogo.setIcon(new ImageIcon(getClass().getResource("cat.jpg")));
catalogo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(catalogo==e.getSource()){
catal k=new catal();
k.setVisible(true);
Futbol.this.dispose();
}
}

});

40

//add(catalogo);

fondo=new JLabel();
fondo.setBounds(0,0,1000,600);
fondo.setIcon(new ImageIcon(getClass().getResource("fondo1.jpg")));
add(fondo);
//JOptionPane.showMessageDialog(null, "Ingresar al catalogo para comprar\nLuego llene los campos
informativos\nGRACIAS POR PREFERIRNOS","BIENVENIDO",JOptionPane.INFORMATION_MESSAGE);

}
/**
* @param args
*/
public static void main(String[] args) {
new Futbol();
}
}

Contador de factura
Botn
nuevo

Borra elementos de la lista

Ver facturas

41

Hacer compra

Guardar factura

Pantalla secundaria (Catlogo)


package Factura;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

42

public class catal extends JFrame{

JPanel panel_zap , panel_cam ,panel_guan ;


JButton sig,ant2,sig2,ant3, sig3 ;
JLabel jLabel,jLabel1,jLabel2,jLabel3,jLabel4,jLabel5,jLabel6 , jLabel7 , jLabel8,jLabel9
,jLabel10 ,jLabel11 ,jLabel12 ,jLabel13 ,jLabel14 ,jLabel15,jLabel16,jLabel17,jLabel18;
JButton Bzadmessi, Bzadcopmun ,Bzadtiempo , Bzf50 ,Bzlottfutura ,Bcbarce , Bccuenca ,
Bcecu,Bcemelec;
JButton Bcliga,Bcquito ,Bgamer , Bgargos,Bgdragon, Bgpreda ,Bgrapthor ;
JComboBox tamaoZ,tamaoC,tamaoG;
JTextField cantZ,cantC,cantG;
String tallasZ []={" ","7","7 1/2","8","8 1/2","9","9 1/2"};
String tallasC []={"","XS","S","M","L","XL"};
String tallasG []={"","7","7 1/2","8","8 1/2","9","9 1/2"};
double can;
Futbol k=new Futbol();
public catal() {
//this.precio = precio;
setLayout(null);
setSize(630, 482);
setResizable(false);
setBackground(Color.black);
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setIconImage(Toolkit.getDefaultToolkit().getImage("fut.png"));
setTitle("Catlogo");
programa();
//panel_zap.setVisible(true);
//panel_cam.setVisible(false);
//panel_guan.setVisible(false);
}

void programa(){
//---------------------------------------------------PANEL ZAPATOS
panel_zap = new JPanel();
panel_zap.setLayout(null);
panel_zap.setBounds(10, 30, 611, 405);
panel_zap.setBackground(Color.black);
add(panel_zap);
jLabel18 = new JLabel();
jLabel18.setBounds(3, 4, 603, 397);
jLabel18.setIcon(new ImageIcon(getClass().getResource("/ecuador.png")));
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(343, 21, 146, 117));
jLabel1.setIcon(new
ImageIcon(getClass().getResource("/zadcopmun.png")));
Bzadcopmun = new JButton();
Bzadcopmun.setBounds(342, 150, 158, 45);
Bzadcopmun.setToolTipText("Adidas Copa Mundial");

43

Bzadcopmun.setText("
$ 150.00");
Bzadcopmun.setHorizontalTextPosition(SwingConstants.CENTER);
Bzadcopmun.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bzadcopmun.setContentAreaFilled(false);
Bzadcopmun.setBorderPainted(false);
Bzadcopmun.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantZ.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoZ.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantZ.getText());
k.modelpro.addElement("Zapatos Adidas
Copa Mundial Talla: "+tamaoZ.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(150.00);
k.modeltot.addElement(can*150.00);
cantZ.setText("");
}
}
}
});
jLabel = new JLabel();
jLabel.setBounds(137, 20, 155, 118);
jLabel.setIcon(new ImageIcon(getClass().getResource("/zadmessi.png")));
Bzadmessi = new JButton();
Bzadmessi.setBounds(136, 150, 158, 45);
Bzadmessi.setText(" $ 84.00");
Bzadmessi.setToolTipText("Adidas Messi");
Bzadmessi.setHorizontalTextPosition(SwingConstants.CENTER);
Bzadmessi.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bzadmessi.setContentAreaFilled(false);
Bzadmessi.setBorderPainted(false);
Bzadmessi.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantZ.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoZ.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantZ.getText());

44

k.modelpro.addElement("Zapatos Adidas
Messi Talla: "+tamaoZ.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(84.00);
k.modeltot.addElement(can*84.00);
cantZ.setText("");
}
}
}
});
jLabel10 = new JLabel();
jLabel10.setBounds(47, 219, 165, 122);
jLabel10.setIcon(new
ImageIcon(getClass().getResource("/zadtiempo.png")));
Bzadtiempo = new JButton();
Bzadtiempo.setBounds(47, 350, 158, 45);
Bzadtiempo.setText(" $ 94.00");
Bzadtiempo.setToolTipText("Nike tiempo");
Bzadtiempo.setHorizontalTextPosition(SwingConstants.CENTER);
Bzadtiempo.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bzadtiempo.setContentAreaFilled(false);
Bzadtiempo.setBorderPainted(false);
Bzadtiempo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantZ.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoZ.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantZ.getText());
k.modelpro.addElement("Zapatos Nike
Tiempo Talla: "+tamaoZ.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(94.00);
k.modeltot.addElement(can*94.00);
cantZ.setText("");
}
}
}
});
jLabel11 = new JLabel();
jLabel11.setBounds(232, 213, 137, 122);
jLabel11.setIcon(new ImageIcon(getClass().getResource("/zf50.png")));
Bzf50 = new JButton();
Bzf50.setBounds(225, 350, 158, 45);
Bzf50.setText(" $ 110.00");
Bzf50.setToolTipText("Adidas F-50");
Bzf50.setHorizontalTextPosition(SwingConstants.CENTER);

45

Bzf50.setIcon(new ImageIcon(getClass().getResource("/Bcomprar.png")));
Bzf50.setContentAreaFilled(false);
Bzf50.setBorderPainted(false);
Bzf50.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantZ.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoZ.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantZ.getText());
k.modelpro.addElement("Zapatos Adidas F50 Talla: "+tamaoZ.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(110.00);
k.modeltot.addElement(can*110.00);
cantZ.setText("");
}
}
}
});
jLabel12 = new JLabel();
jLabel12.setIcon(new
ImageIcon(getClass().getResource("/zlottfutura.png")));
jLabel12.setBounds(392, 213, 141, 122);
Bzlottfutura = new JButton();
Bzlottfutura.setBounds(394, 350, 158, 45);
Bzlottfutura.setText("
$ 56.00");
Bzlottfutura.setToolTipText("Lotto Futura");
Bzlottfutura.setHorizontalTextPosition(SwingConstants.CENTER);
Bzlottfutura.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bzlottfutura.setContentAreaFilled(false);
Bzlottfutura.setBorderPainted(false);
Bzlottfutura.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantZ.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoZ.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantZ.getText());
k.modelpro.addElement("Zapatos Lotto
Futura Talla: "+tamaoZ.getSelectedItem());

46

k.modelc.addElement(can);
k.modelpre.addElement(56.00);
k.modeltot.addElement(can*56.00);
cantZ.setText("");
}
}
}
});
sig = new JButton();
sig.setBounds(544, 184, 57, 31);
sig.setContentAreaFilled(false);
sig.setBorderPainted(false);
sig.setIcon(new ImageIcon(getClass().getResource("/sig.png")));
sig.setToolTipText("Siguiente");
sig.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
panel_zap.setVisible(false);
panel_cam.setVisible(true);
panel_guan.setVisible(false);
}
});
cantZ=new JTextField();
cantZ.setBounds(15, 5, 25, 25);
cantZ.setBackground(Color.black);
cantZ.setForeground(Color.white);
cantZ.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
char c;
c=e.getKeyChar();
if(!Character.isDigit(c)){
e.consume();
JOptionPane.showMessageDialog(null, "Solo
nmeros en el campo cantidad","ERROR",JOptionPane.ERROR_MESSAGE);
}
}
});
tamaoZ=new JComboBox(tallasZ);
tamaoZ.setBounds(5,32,90,20);
tamaoZ.setBackground(Color.black);
tamaoZ.setForeground(Color.white);
panel_zap.add(jLabel);
panel_zap.add(jLabel1);
panel_zap.add(sig);
panel_zap.add(jLabel10);
panel_zap.add(jLabel11);
panel_zap.add(jLabel12);
panel_zap.add(Bzadmessi);
panel_zap.add(tamaoZ);
panel_zap.add(Bzadcopmun);
panel_zap.add(Bzadtiempo);
panel_zap.add(Bzf50);

47

panel_zap.add(Bzlottfutura);
panel_zap.add(tamaoZ);
panel_zap.add(cantZ);
panel_zap.add(jLabel18);
//----------------------------------------------PANEL CAMISETA
panel_cam = new JPanel();
panel_cam.setLayout(null);
panel_cam.setBackground(Color.black);
//panel_zap.setBounds(10, 30, 611, 405);
panel_cam.setBounds(10, 30, 611, 405);
add(panel_cam);
jLabel16 = new JLabel();
jLabel16.setBounds(new Rectangle(3, 4, 603, 397));
jLabel16.setIcon(new ImageIcon(getClass().getResource("/ecuador.png")));
jLabel8 = new JLabel();
jLabel8.setBounds(232, 221, 126, 125);
jLabel8.setIcon(new ImageIcon(getClass().getResource("/cliga.png")));
Bcliga = new JButton();
Bcliga.setBounds(221, 355, 140, 45);
Bcliga.setText(" $ 39.00");//precio
Bcliga.setToolTipText("Camiseta Liga de Quito");
Bcliga.setHorizontalTextPosition(SwingConstants.CENTER);//ubica el texto
en el boton
Bcliga.setIcon(new ImageIcon(getClass().getResource("/Bcomprar.png")));
Bcliga.setContentAreaFilled(false);//----borra el fondo del boton
Bcliga.setBorderPainted(false);//...... borra el borde del boton
Bcliga.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantC.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoC.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantC.getText());
k.modelpro.addElement("Camiseta Liga de
Quito Talla: "+tamaoC.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(39.00);
k.modeltot.addElement(can*39.00);
cantC.setText("");
}
}
}
});
jLabel2 = new JLabel();
jLabel2.setBounds(88, 24, 115, 126);
jLabel2.setIcon(new ImageIcon(getClass().getResource("/cbarce.png")));

48

Bcbarce = new JButton();


Bcbarce.setBounds(74, 158,140, 45);
Bcbarce.setText("
$ 34.00");
Bcbarce.setToolTipText("Camiseta Barcelona Sporting Club");
Bcbarce.setHorizontalTextPosition(SwingConstants.CENTER);
Bcbarce.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bcbarce.setContentAreaFilled(false);
Bcbarce.setBorderPainted(false);
Bcbarce.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantC.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoC.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantC.getText());
k.modelpro.addElement("Camiseta
Barcelona Sporting Club Talla: "+tamaoC.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(34.00);
k.modeltot.addElement(can*34.00);
cantC.setText("");
}
}
}
});
jLabel3 = new JLabel();
jLabel3.setBounds(230, 17, 119, 132);
jLabel3.setIcon(new ImageIcon(getClass().getResource("/ccuenca.png")));
Bccuenca = new JButton();
Bccuenca.setBounds(221, 158, 140, 45);
Bccuenca.setText(" $ 32.00");
Bccuenca.setToolTipText("Camiseta Deportivo Cuenca");
Bccuenca.setHorizontalTextPosition(SwingConstants.CENTER);
Bccuenca.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bccuenca.setContentAreaFilled(false);
Bccuenca.setBorderPainted(false);
Bccuenca.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantC.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoC.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");

49

}else{
can=Double.parseDouble(cantC.getText());
k.modelpro.addElement("Camiseta
Deportivo Cuenca: "+tamaoC.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(32.00);
k.modeltot.addElement(can*32.00);
cantC.setText("");
}
}
}
});
jLabel6 = new JLabel();
jLabel6.setBounds(368, 19, 133, 132);
jLabel6.setIcon(new ImageIcon(getClass().getResource("/cecu.png")));
Bcecu = new JButton();
Bcecu.setBounds(366, 158, 140, 45);
Bcecu.setText(" $ 43.00");
Bcecu.setToolTipText("Camiseta Seleccin Ecuador");
Bcecu.setHorizontalTextPosition(SwingConstants.CENTER);
Bcecu.setIcon(new ImageIcon(getClass().getResource("/Bcomprar.png")));
Bcecu.setContentAreaFilled(false);
Bcecu.setBorderPainted(false);
Bcecu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantC.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoC.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantC.getText());
k.modelpro.addElement("Camiseta
Seleccion de Ecuador Talla: "+tamaoC.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(43.00);
k.modeltot.addElement(can*43.00);
cantC.setText("");
}
}
}
});
jLabel7 = new JLabel();
jLabel7.setBounds(74, 235, 133, 122);
jLabel7.setIcon(new ImageIcon(getClass().getResource("/cemelec.png")));
Bcemelec = new JButton();
Bcemelec.setBounds(74, 355, 140,45);
Bcemelec.setText(" $ 40.00");
Bcemelec.setToolTipText("Camiseta Club Sport Emelec");
Bcemelec.setHorizontalTextPosition(SwingConstants.CENTER);

50

Bcemelec.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bcemelec.setContentAreaFilled(false);
Bcemelec.setBorderPainted(false);
Bcemelec.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantC.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoC.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantC.getText());
k.modelpro.addElement("Camiseta Club
Sport Emelec Talla: "+tamaoC.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(40.00);
k.modeltot.addElement(can*40.00);
cantC.setText("");
}
}
}
});
jLabel9 = new JLabel();
jLabel9.setBounds(373, 234, 123, 124);
jLabel9.setIcon(new ImageIcon(getClass().getResource("/cquito.png")));
Bcquito = new JButton();
Bcquito.setBounds(366, 355, 140, 45);
Bcquito.setText(" $ 29.00");
Bcquito.setToolTipText("Camiseta SD Quito");
Bcquito.setHorizontalTextPosition(SwingConstants.CENTER);
Bcquito.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bcquito.setContentAreaFilled(false);
Bcquito.setBorderPainted(false);
Bcquito.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantC.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoC.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantC.getText());
k.modelpro.addElement("Camiseta SD
Quito Talla: "+tamaoC.getSelectedItem());
k.modelc.addElement(can);

51

k.modelpre.addElement(29.00);
k.modeltot.addElement(can*29.00);
cantC.setText("");
}
}
}
});
ant2 = new JButton();
ant2.setBounds(5, 184, 57, 31);
ant2.setToolTipText("Atras");
ant2.setContentAreaFilled(false);
ant2.setBorderPainted(false);
ant2.setIcon(new ImageIcon(getClass().getResource("/ant.png")));
ant2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
panel_zap.setVisible(true);
panel_cam.setVisible(false);
}
});
sig2 = new JButton();
sig2.setBounds(544, 184, 57, 31);
sig2.setIcon(new ImageIcon(getClass().getResource("/sig.png")));
sig2.setToolTipText("Siguiente");
sig2.setContentAreaFilled(false);
sig2.setBorderPainted(false);
sig2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
panel_guan.setVisible(true);
panel_cam.setVisible(false);
}
});
cantC=new JTextField();
cantC.setBounds(15, 5, 25, 25);
cantC.setBackground(Color.black);
cantC.setForeground(Color.white);
cantC.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
char c;
c=e.getKeyChar();
if(!Character.isDigit(c)){
e.consume();
JOptionPane.showMessageDialog(null, "Solo
nmeros en el campo cantidad","ERROR",JOptionPane.ERROR_MESSAGE);
}
}
});

tamaoC=new JComboBox(tallasC);
tamaoC.setBounds(5,32,90,20);
tamaoC.setBackground(Color.black);
tamaoC.setForeground(Color.white);

52

panel_cam.add(jLabel2);
panel_cam.add(jLabel3, null);
panel_cam.add(ant2);
panel_cam.add(sig2);
panel_cam.add(jLabel6, null);
panel_cam.add(jLabel7, null);
panel_cam.add(jLabel8, null);
panel_cam.add(jLabel9, null);
panel_cam.add(Bcbarce);
panel_cam.add(Bccuenca);
panel_cam.add(Bcecu);
panel_cam.add(Bcemelec);
panel_cam.add(Bcliga);
panel_cam.add(Bcquito);
panel_cam.add(tamaoC);
panel_cam.add(cantC);
panel_cam.add(jLabel16);
//------------------------------------------PANEL GUANTES
panel_guan = new JPanel();
panel_guan.setLayout(null);
panel_guan.setBounds(10, 30, 611, 405);
panel_guan.setBackground(Color.black);
add(panel_guan);
jLabel17 = new JLabel();
jLabel17.setBounds(3, 4, 603, 397);
jLabel17.setIcon(new ImageIcon(getClass().getResource("/ecuador.png")));
jLabel4 = new JLabel();
jLabel4.setBounds(97, 2, 133, 158);
jLabel4.setIcon(new ImageIcon(getClass().getResource("/gamer.png")));
Bgamer = new JButton();
Bgamer.setBounds(92, 167, 140, 45);
Bgamer.setText(" $ 78.00");
Bgamer.setToolTipText("Guantes Reusch Copa Amrica");
Bgamer.setHorizontalTextPosition(SwingConstants.CENTER);
Bgamer.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bgamer.setContentAreaFilled(false);
Bgamer.setBorderPainted(false);
Bgamer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantG.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoG.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantG.getText());
k.modelpro.addElement("Guantes Reusch
Copa Amrica Talla: "+tamaoG.getSelectedItem());
k.modelc.addElement(can);

53

k.modelpre.addElement(78.00);
k.modeltot.addElement(can*78.00);
cantG.setText("");
}
}
}
});
jLabel5 = new JLabel();
jLabel5.setBounds(244, 3, 126, 161);
jLabel5.setIcon(new ImageIcon(getClass().getResource("/gargos.png")));
Bgargos = new JButton();
Bgargos.setBounds(241, 167,140, 45);
Bgargos.setText(" $ 50.00");
Bgargos.setToolTipText("Guantes Reusch Argos");
Bgargos.setHorizontalTextPosition(SwingConstants.CENTER);
Bgargos.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bgargos.setContentAreaFilled(false);
Bgargos.setBorderPainted(false);
Bgargos.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantG.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoG.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantG.getText());
k.modelpro.addElement("Guantes Reusch
Argos Talla: "+tamaoG.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(50.00);
k.modeltot.addElement(can*50.00);
cantG.setText("");
}
}
}
});
jLabel13 = new JLabel();
jLabel13.setBounds(389, 11, 141, 147);
jLabel13.setIcon(new ImageIcon(getClass().getResource("/gdragon.png")));
Bgdragon = new JButton();
Bgdragon.setBounds(392, 167, 140, 45);
Bgdragon.setText(" $ 59.00");
Bgdragon.setToolTipText("Guantes Reusch Dragon Pro");
Bgdragon.setHorizontalTextPosition(SwingConstants.CENTER);
Bgdragon.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bgdragon.setContentAreaFilled(false);
Bgdragon.setBorderPainted(false);

54

Bgdragon.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantG.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoG.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantG.getText());
k.modelpro.addElement("Guantes Reusch
Dragon Pro Talla: "+tamaoG.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(59.00);
k.modeltot.addElement(can*59.00);
cantG.setText("");
}
}
}
});
jLabel14 = new JLabel();
jLabel14.setBounds(172, 211, 138, 137);
jLabel14.setIcon(new ImageIcon(getClass().getResource("/gpreda.png")));
Bgpreda = new JButton();
Bgpreda.setBounds(167, 354, 140, 45);
Bgpreda.setText(" $ 45.00");
Bgpreda.setToolTipText("Guantes Adidas Predator");
Bgpreda.setHorizontalTextPosition(SwingConstants.CENTER);
Bgpreda.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bgpreda.setContentAreaFilled(false);
Bgpreda.setBorderPainted(false);
Bgpreda.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantG.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoG.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantG.getText());
k.modelpro.addElement("Guantes Addidas
Predator Talla: "+tamaoG.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(45.00);
k.modeltot.addElement(can*45.00);
cantG.setText("");
}

55

}
}
});
jLabel15 = new JLabel();
jLabel15.setBounds(319, 210, 134, 140);
jLabel15.setIcon(new ImageIcon(getClass().getResource("/grapthor.png")));
Bgrapthor = new JButton();
Bgrapthor.setBounds(319, 355, 140, 45);
Bgrapthor.setText(" $ 52.00");
Bgrapthor.setToolTipText("Guantes Reusch Rapthor");
Bgrapthor.setHorizontalTextPosition(SwingConstants.CENTER);
Bgrapthor.setIcon(new
ImageIcon(getClass().getResource("/Bcomprar.png")));
Bgrapthor.setContentAreaFilled(false);
Bgrapthor.setBorderPainted(false);
Bgrapthor.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(cantG.getText().equals("")){
JOptionPane.showMessageDialog(null, "Ingrese la
cantidad");
}else{
if(tamaoG.getSelectedIndex()==0){
JOptionPane.showMessageDialog(null,
"Seleccione la talla");
}else{
can=Double.parseDouble(cantG.getText());
k.modelpro.addElement("Guantes Reusch
Rapthor Talla: "+tamaoG.getSelectedItem());
k.modelc.addElement(can);
k.modelpre.addElement(52.00);
k.modeltot.addElement(can*52.00);
cantG.setText("");
}
}
}
});
ant3 = new JButton();
ant3.setBounds(5, 184, 57, 31);
ant3.setToolTipText("Atras");
ant3.setIcon(new ImageIcon(getClass().getResource("/ant.png")));
//ant3.setBackground(new Color(216,216,216));
ant3.setContentAreaFilled(false);
ant3.setBorderPainted(false);
ant3.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
panel_guan.setVisible(false);
panel_cam.setVisible(true);
}
});
sig3 = new JButton();
sig3.setBounds(544, 184, 57, 31);
sig3.setIcon(new ImageIcon(getClass().getResource("/sig.png")));

56

sig3.setContentAreaFilled(false);
sig3.setToolTipText("No hay mas productos");
sig3.setBorderPainted(false);
cantG=new JTextField();
cantG.setBounds(15, 5, 25, 25);
cantG.setBackground(Color.black);
cantG.setForeground(Color.white);
cantG.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
char c;
c=e.getKeyChar();
if(!Character.isDigit(c)){
e.consume();
JOptionPane.showMessageDialog(null, "Solo
nmeros en el campo cantidad","ERROR",JOptionPane.ERROR_MESSAGE);
}
}
});

tamaoG=new JComboBox(tallasG);
tamaoG.setBounds(5,32,90,20);
tamaoG.setBackground(Color.black);
tamaoG.setForeground(Color.white);
panel_guan.add(jLabel4);
panel_guan.add(jLabel5);
panel_guan.add(ant3);
panel_guan.add(sig3);
panel_guan.add(jLabel13);
panel_guan.add(jLabel14);
panel_guan.add(jLabel15);
panel_guan.add(Bgamer);
panel_guan.add(Bgargos);
panel_guan.add(Bgdragon);
panel_guan.add(Bgpreda);
panel_guan.add(Bgrapthor);
panel_guan.add(tamaoG);
panel_guan.add(cantG);
panel_guan.add(jLabel17);
}}

public static void main(String[] args) {

new Futbol();
}}

57

Ingreso de

Selector de tallas

Botn para acceder a la sig.


seccin

Botones programados con el


precio

58

Capturas de pantalla
1- Inicio del programa con la pantalla principal y catalogo.

2- Ingreso de datos a la factura

59

3- Envio de datos desde el catalogo hasta la factura (Seleccionando talla y


cantidad)

4- Calculo de la Subtotal, iva ,descuento, recargo y total

60

5- Guardar factura.
6- Buscamos la factura guardada y desplegamos su contenido.

61

7- Seleccionamos nueva factura , todos sus campos se ponen en cero y su


contador de factura aumenta en 1 dndonos una nueva donde comprar.

Conclusiones
La orientacin a objetos es el mecanismo que nos permite relacionar aspectos
de la vida cotidiana con las clases que desarrollamos independientemente del
lenguaje de programacin que utilicemos.
Concluimos que los elementos como son botones, etiquetas, cajas de textos,
listas, est definida en el paquete javax.swing, la cual permite desplegar
estos elementos en la ventana para la construccin de una interfaz grfica.
Con la utilizacin de JList y sus mtodos se puede resolver con ms facilidad
los problemas que se presentan al momento de enlistar elementos 1 a 1 , de
tal manera que el programa desarrollado, sea ms eficiente y menos complejo
para la bsqueda y manejo de datos.
Por medio del control o validacin de Excepciones se puede interactuar con
el usuario, de manera que al ejecutar el programa no tenga complicacin en
volver a introducir los datos correctamente y as no se pueda cortar de manera
brusca y ocasione molestias.

62

En el manejo de errores java interrumpe el programa y mande excepciones,


esto ayuda a que nuestro programa sea ms seguro, eficiente y tenga nitidez
al momento de ingresar datos.
Al utilizar los oyentes en nuestros programas tenemos una precisin vers de
que se ejecuten los eventos programados teniendo en cuenta lo que el usuario
vaya a hacer.

7. BIBLIOGRAFIA
LPEZ Leobardo, Metodologa de la Programacin Orientada a Objetos, Grupo
Editor S.A. de C.V. 2006 Alfaomega, Tercera Edicin
ARNOW David; WERSS Gerald, Introduccin a la Programacin con Java, 2001
Pearson Educacin S.A., Madrid Espaa
JOYANES Luis; FRNANDEZ Matilde, Java 2 Manual de Programacin,
Primera Edicin, Edit. Carmelo Snchez.
WU Thomas, Introduccin a la Programacin Orientada a Objetos con Java, Edit.
Mc Graw-Hill/Interamericana, Madrid-Espaa, 2001
DEITEL, Como programar en Java, Edit. Prentice Hall Hispanoamerica (Ao:
2008), Sptima Edicin.
Herencia:
http://profesores.elo.utfsm.cl/~agv/elo330/2s04/lectures/JAVA/Herencia_en_Java
.html
http://www.mailxmail.com/curso-java/herencia-java-1
Constructores:
http://programandoenjava.over-blog.es/article-32829724.html
JList:
http://apuntes.delibertad.com/java/como-usar-un-jlist/comment-page1/

Programacin Grfica:
https://sites.google.com/site/programacionbasicajava/interfaz-graficagui

Elementos de javax.swing:
http://www.lcc.uma.es/~pacog/apuntes/poo/Tema6.pdf

63