0% encontró este documento útil (0 votos)
92 vistas

Proyecto Caja Java

Este documento describe el desarrollo de una aplicación Java utilizando Eclipse para gestionar el inventario de una tienda de mochilas. Detalla el proceso de desarrollo, las funcionalidades implementadas como registro de productos, seguimiento de inventario y generación de facturas, además del análisis de datos para la toma de decisiones.

Cargado por

roxana huamani
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
92 vistas

Proyecto Caja Java

Este documento describe el desarrollo de una aplicación Java utilizando Eclipse para gestionar el inventario de una tienda de mochilas. Detalla el proceso de desarrollo, las funcionalidades implementadas como registro de productos, seguimiento de inventario y generación de facturas, además del análisis de datos para la toma de decisiones.

Cargado por

roxana huamani
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 45

“Año de la unidad, la paz y el desarrollo”

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN

INSTITUTO DE CIENCIAS Y ALTA TECNOLOGÍA

PROYECTO DE INVESTIGACION APLICADA:

CONFIGURACION Y DESARROLLO DE UNA APLICACIÓN JAVA

TIENDA DE MALETAS

ALGORITMOS Y ESTRUCTURA DE DATOS


Profesor: Raúl López Amézquita

CICLO 2

INTEGRANTES:

• i202312442 - Mario César Huamaní Huamaní (Coordinador)


• i202313490 - Vladimir Fidel Ríos Lira
• i202218117 - Suney Quintana García
• i202310949 - Abel Anthony Castillo Ccanto
• I202313552 - Ernesto Febres Bedia

Lima - Perú

i
Agosto - 2023

Contenido
RESUMEN ................................................................................................................................................... 3

CAPÍTULO I.................................................................................................................................................. 4

INTRODUCCIÓN .......................................................................................................................................... 4

1. JUSTIFICACIÓN ............................................................................................................................................... 4
1.1. Beneficiarios Directos .................................................................................................................. 5
1.2. Beneficiarios indirectos ................................................................................................................ 5
2. OBJETIVOS ............................................................................................................................................... 5
3. ALCANCE ................................................................................................................................................. 5
4. METODOLOGÍAS DE DESARROLLO ................................................................................................................. 6
5. INTERFASE GRÁFICA (GUI) ........................................................................................................................ 38

CONCLUSIONES ......................................................................................................................................... 44

ii
RESUMEN

Se hace uso del entorno de desarrollo integrado (IDE) Eclipse, mediante las herramientas JDT (Java
Development Toolkit) integradas dentro del software y su compilador ECJ para crear una aplicación
de carga de datos de maletas, mochilas y maletines de distintos modelos, adaptable a distintas
plataformas, donde el usuario podrá seleccionar los modelos predefinidos y realizar la carga de
datos, consulta de productos, inventario, caja y descuentos. Además, el sistema permite realizar la
administración, gestión y actualización de los productos ofrecidos, administración de ventas y
pedidos realizados.

Uno de los aspectos más importantes hoy en día en el desarrollo de aplicaciones de este tipo es
reducir el tiempo de latencia o de respuesta ante procesos lentos. Este informe proporciona una
visión detallada del desarrollo de una aplicación Java utilizando Eclipse para la gestión de
inventarios en una tienda de mochilas. A través del análisis de su diseño, implementación y
funcionalidades, se demuestra cómo la tecnología puede potenciar la eficiencia y la toma de
decisiones en un contexto comercial específico.

Palabras Clave: Java, JFrame, JMenu

3
CAPÍTULO I

INTRODUCCIÓN

En el mundo actual, donde la tecnología desempeña un papel crucial en la eficiencia y el éxito de


los negocios, las aplicaciones de software personalizadas se han convertido en una herramienta
esencial para optimizar los procesos comerciales y mejorar la experiencia del cliente. En este
informe, se explorará en detalle el proceso de desarrollo de una aplicación Java creada para abordar
las necesidades específicas de una tienda de mochilas.

En este informe, se detalla el proceso de desarrollo de la aplicación utilizando la plataforma Java y


la herramienta de desarrollo Eclipse. Se transcribe el código estructural de la aplicación, las
funcionalidades implementadas y las decisiones de diseño que llevaron a la creación de una
herramienta de gestión de inventarios personalizada y efectiva.

1. Justificación
El sector minorista ha evolucionado de manera significativa en los últimos años, y las tiendas se
enfrentan constantemente al desafío de gestionar su inventario de manera eficiente para satisfacer
las demandas cambiantes de los consumidores. En este contexto, el desarrollo de una aplicación de
gestión de inventarios adaptada a las particularidades de una tienda de mochilas se convierte en
una solución valiosa.

1. Eficiencia en la Administración de Inventarios:

En un negocio minorista, la administración eficiente del inventario es fundamental para satisfacer


la demanda de los clientes y evitar excesos o escasez de productos. Una aplicación personalizada
de gestión de inventarios permite un seguimiento en tiempo real de los niveles de existencias, lo
que facilita la toma de decisiones informadas sobre la reposición de productos.

2. Optimización de la Experiencia del Cliente:

La aplicación contribuye directamente a mejorar la experiencia del cliente al garantizar que los
productos estén disponibles cuando los clientes los desean. La rápida identificación de productos
disponibles y la generación eficiente de facturas o recibos reducen el tiempo de espera de los
clientes y aumentan la satisfacción general.

3. Análisis de Datos y Toma de Decisiones Basadas en Información:

La aplicación proporciona herramientas para analizar datos de inventario y ventas a lo largo del
tiempo. Estos análisis pueden ofrecer información valiosa sobre las tendencias de la demanda, los
productos más populares y otros patrones relevantes.

4. Agilidad Operativa y Reducción de Errores:

La automatización de procesos manuales reduce la posibilidad de errores humanos en tareas como


la entrada de datos y el cálculo de existencias. La aplicación minimiza la duplicación de esfuerzos y
garantiza que la información se actualice de manera precisa y consistente en toda la tienda.
1.1. Beneficiarios Directos

Los beneficiarios directos de la aplicación para la tienda de mochilas serían aquellos individuos y
grupos que experimentarían un impacto positivo y tangible como resultado de la implementación
y el uso de la aplicación. Por ejemplo, Los propietarios y gerentes de la tienda de mochilas serían
los principales beneficiarios de la aplicación. Tendrían acceso a información en tiempo real sobre el
estado de inventario, las tendencias de ventas y otros datos relevantes, Los empleados encargados
de la administración de inventarios y las transacciones diarias también se beneficiarían
directamente. La aplicación simplificaría las tareas de registro de productos, seguimiento de
existencias y generación de facturas o recibos. Los clientes de la tienda de mochilas también serían
beneficiarios indirectos de la aplicación. Al mejorar la gestión de inventarios y la eficiencia
operativa, la aplicación garantizaría que los productos estén disponibles cuando los clientes los
necesiten.

1.2. Beneficiarios indirectos

los propietarios de la aplicación y los desarrolladores involucrados en su creación también se


beneficiarían. El éxito de la aplicación en una tienda de mochilas podría generar reconocimiento
en la industria de desarrollo de software y posiblemente llevar a oportunidades futuras de
colaboración o desarrollo similar para otros negocios.

2. Objetivos

S: Mejorar la gestión de inventarios para evitar escasez o exceso de productos en la tienda de


mochilas.

M: Reducir el tiempo de espera por falta de productos en al menos un 20% y disminuir los casos de
exceso de inventario en un 15% en los primeros seis meses de implementación.

A: Es realista se puede lograr

R: Mejorar la gestión de inventarios es esencial para garantizar la satisfacción del cliente y optimizar
la operación de la tienda.

T: Los resultados deben ser alcanzados en los primeros meses de implementación

2.1. OBJ 1.- Optimizar la Administración de Inventarios


2.2. OBJ 2.- habilitar al usuario una aplicación que genere transacciones de manera más
eficiente

3. Alcance

• Registro de Producto. - La aplicación permitirá a los empleados ingresar nuevos productos


en el sistema, incluyendo detalles como nombre, descripción, precio y cantidad
disponible.
• Seguimiento de Inventarios. - La aplicación rastreará automáticamente las entradas y
salidas de productos a medida que se realicen transacciones, lo que garantizará una visión
en tiempo real de los niveles de inventario.
• Generación de Facturas y Recibos. - La aplicación generará automáticamente facturas o
recibos para las transacciones de ventas, incluyendo detalles de los productos comprados
y los totales.
• Análisis de Datos. - La aplicación proporcionará informes y análisis sobre las tendencias de
ventas, los productos más populares y otros datos relevantes para respaldar la toma de
decisiones informadas.
• Interfaz de Usuario Intuitiva. - La aplicación tendrá una interfaz de usuario fácil de usar
que permitirá a los empleados navegar y realizar tareas de manera eficiente.

4. Metodologías de Desarrollo
La tienda vende cinco tipos de maletas cuyos códigos son MT0, MT1, MT2, MT3 y MT4. Por cada
tipo de maleta se tomarán en cuenta los siguientes datos mínimos:

Modelo : Modelo de la maleta

Precio : Precio de la maleta

Ancho : Ancho de la maleta en centímetros

Alto : Alto de la maleta en centímetros

Fondo : Fondo de la maleta en centímetros

4.1. Módulo de Pantalla Principal


package maleta_nomada1;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;

import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.Serializable;
import java.awt.event.ActionEvent;
import javax.swing.JDesktopPane;
import java.awt.Color;
import java.awt.Toolkit;

public class Consola_Principal1 extends JFrame implements Serializable {


private static final long serialVersionUID = 1L;

private JFrame frameMaleta_Nomada1;


private JMenu mnSistema;
private JMenu mnInventario;
private JMenu mnAyuda;
private JMenu mnCaja;
private JMenu mnAgregados;
private JMenuItem mntmSalir;
private JMenuItem mntmProductos;
private JMenuItem mntmModificarInventario;
private JMenuItem mntmConsultaInventario;
private JMenuItem mntmVenta;
private JMenuItem mntmReporteVenta;
private JMenuItem mntmDescuentos;
private JMenuItem mntmAcercaDe;
private JMenuBar menuBar;
private JDesktopPane escritorioPrincipal;

// agregar los formularios internos//


private FrmProductos frmProduc = new FrmProductos();
private FrmModificarInventario frmModifInvent = new FrmModificarInventario();
private FrmConsultaInventario frmConsulInvent = new FrmConsultaInventario();
private FrmVenta frmVent = new FrmVenta();
private FrmReporteVenta frmReportVent = new FrmReporteVenta();
private FrmAcercaDe frmAcerDe = new FrmAcercaDe();
private FrmDescuentos frmDescuent = new FrmDescuentos();

// Primer producto //
public static String codigo1 = "Maleta01";
public static String categoria1 = "Viajero";
public static double precio1 = 250.50;
public static double capacidadLitros1 = 60;
public static String material1 = "Nylon";
public static double alto1 = 57.5;
public static double ancho1 = 33;
public static double profundidad1 = 19;

// Segundo producto //
public static String codigo2 = "Maleta02";
public static String categoria2 = "Moda";
public static double precio2 = 80.9;
public static double capacidadLitros2 = 10.5;
public static String material2 = "Nylon Twill";
public static double alto2 = 40;
public static double ancho2 = 30.5;
public static double profundidad2 = 16;

// Tercer producto //
public static String codigo3 = "Maleta03";
public static String categoria3 = "Escolar";
public static double precio3 = 75;
public static double capacidadLitros3 = 15.5;
public static String material3 = "Polyester";
public static double alto3 = 42.5;
public static double ancho3 = 28;
public static double profundidad3 = 18;

// Cuarto producto //
public static String codigo4 = "Maleta04";
public static String categoria4 = "Bolso";
public static double precio4 = 89.9;
public static double capacidadLitros4 = 4.5;
public static String material4 = "Polyester";
public static double alto4 = 26.8;
public static double ancho4 = 31;
public static double profundidad4 = 11;

// Descuentos en porcentaje //
public static double porcentaje1 = 10.0;
public static double porcentaje2 = 15.0;
public static double porcentaje3 = 20.0;
public static double porcentaje4 = 25.0;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Consola_Principal1 window = new Consola_Principal1();
window.frameMaleta_Nomada1.setVisible(true);
window.frameMaleta_Nomada1.setLocationRelativeTo(null); //
posiciona al centro//
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the application.
*/
public Consola_Principal1() {
initialize();
}

/**
* Initialize the contents of the frame.
*/
private void initialize() {

frameMaleta_Nomada1 = new JFrame();


frameMaleta_Nomada1.setTitle("TIENDA MALETA NOMADA V 1.0");
frameMaleta_Nomada1.setIconImage(Toolkit.getDefaultToolkit()

.getImage(Consola_Principal1.class.getResource("/imagenes/icono_maleta2.png")));
frameMaleta_Nomada1.setBounds(100, 100, 880, 687);
frameMaleta_Nomada1.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frameMaleta_Nomada1.getContentPane().setLayout(null);
frameMaleta_Nomada1.addWindowListener(new WindowAdapter() {

@Override
public void windowClosing(WindowEvent e) {
int resp =
javax.swing.JOptionPane.showConfirmDialog(frameMaleta_Nomada1,
"¿Realmente desea salir de la aplicación MALETA
NOMADA?", "Confirmar Salida",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (resp == 0) {
// El usuario seleccionó Sí
System.exit(0);
}
}
});

escritorioPrincipal = new JDesktopPane();


escritorioPrincipal.setBackground(new Color(255, 255, 128));

escritorioPrincipal.add(frmProduc);
escritorioPrincipal.add(frmModifInvent);
escritorioPrincipal.add(frmConsulInvent);
escritorioPrincipal.add(frmVent);
escritorioPrincipal.add(frmReportVent);
escritorioPrincipal.add(frmDescuent);
escritorioPrincipal.add(frmAcerDe);

escritorioPrincipal.setBounds(0, 0, 866, 628);


frameMaleta_Nomada1.getContentPane().add(escritorioPrincipal);

menuBar = new JMenuBar();


menuBar.setBackground(new Color(128, 255, 128));
frameMaleta_Nomada1.setJMenuBar(menuBar);

mnSistema = new JMenu("SISTEMA");


menuBar.add(mnSistema);

mntmSalir = new JMenuItem("SALIR");


mntmSalir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
mnSistema.add(mntmSalir);

mnInventario = new JMenu("INVENTARIO");


menuBar.add(mnInventario);

mntmProductos = new JMenuItem("PRODUCTOS");


mntmProductos.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// internaljframe
frmProduc.setVisible(true);
}
});
mnInventario.add(mntmProductos);

mntmModificarInventario = new JMenuItem("MODIFICAR INVENTARIO");


mntmModificarInventario.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// internaljframe
frmModifInvent.setVisible(true);
}
});
mnInventario.add(mntmModificarInventario);

mntmConsultaInventario = new JMenuItem("CONSULTA INVENTARIO");


mntmConsultaInventario.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// internaljframe
frmConsulInvent.setVisible(true);
}
});
mnInventario.add(mntmConsultaInventario);

mnCaja = new JMenu("CAJA");


menuBar.add(mnCaja);

mntmVenta = new JMenuItem("VENTA");


mntmVenta.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// internaljframe
frmVent.setVisible(true);
}
});
mnCaja.add(mntmVenta);

mntmReporteVenta = new JMenuItem("REPORTE VENTA");


mntmReporteVenta.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// internaljframe
frmReportVent.setVisible(true);
}
});
mnCaja.add(mntmReporteVenta);

mnAgregados = new JMenu("AGREGADOS");


menuBar.add(mnAgregados);

mntmDescuentos = new JMenuItem("DESCUENTOS");


mntmDescuentos.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// internaljframe
frmDescuent.setVisible(true);

}
});
mnAgregados.add(mntmDescuentos);

mnAyuda = new JMenu("AYUDA");


menuBar.add(mnAyuda);

mntmAcercaDe = new JMenuItem("ACERCA DE");


mntmAcercaDe.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// internaljframe
frmAcerDe.setVisible(true);
}
});
mnAyuda.add(mntmAcercaDe);
}
}

4.2. Módulo de Consulta de Inventario

package maleta_nomada1;

import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
import java.awt.Font;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.awt.Color;

public class FrmConsultaInventario extends JInternalFrame {


private static final long serialVersionUID = 1L;
private JTextArea textArea;
private JButton BotonCerrar;
private JScrollPane scrollPane;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FrmConsultaInventario frame = new FrmConsultaInventario();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public FrmConsultaInventario() {
getContentPane().setBackground(new Color(255, 255, 181));
setFrameIcon(new
ImageIcon(FrmConsultaInventario.class.getResource("/imagenes/icono_maleta2.png")));
setTitle("CONSULTA INVENTARIO MALETA NOMADA");
setIconifiable(true);
setBounds(100, 100, 437, 489);
getContentPane().setLayout(null);
JLabel lblImagenIcono = new JLabel(".");
lblImagenIcono.setIcon(new
ImageIcon(FrmConsultaInventario.class.getResource("/imagenes/icono_maleta2.png")));
lblImagenIcono.setBounds(181, 10, 55, 64);
getContentPane().add(lblImagenIcono);

JLabel lblTituloM = new JLabel("LISTA PRODUCTO");


lblTituloM.setFont(new Font("Dialog", Font.BOLD, 16));
lblTituloM.setBounds(130, 84, 150, 31);
getContentPane().add(lblTituloM);

BotonCerrar = new JButton("CERRAR");


BotonCerrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int respuesta = JOptionPane.showConfirmDialog(null, "¿Realmente
desea cerrar la ventana?",
"Confirmar Cierre", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION) {
setVisible(false); // Oculta la ventana
}
}
});
BotonCerrar.setFont(new Font("Dialog", Font.BOLD, 14));
BotonCerrar.setBounds(154, 404, 111, 31);
getContentPane().add(BotonCerrar);

textArea = new JTextArea();


scrollPane = new JScrollPane(textArea);
scrollPane.setBounds(37, 121, 345, 252);
getContentPane().add(scrollPane);

listar();

void listar() {
imprimir("LISTA DE INVENTARIO");
imprimir("");
imprimir("Codigo : " + Consola_Principal1.codigo1);
imprimir("Categoria : " + Consola_Principal1.categoria1);
imprimir("Capacidad (Litros): " + ajuste(Consola_Principal1.capacidadLitros1));
imprimir("Material : " + Consola_Principal1.material1);
imprimir("Ancho (cm) : " + ajuste(Consola_Principal1.ancho1));
imprimir("Alto (cm) : " + ajuste(Consola_Principal1.alto1));
imprimir("profundidad (cm) : " + ajuste(Consola_Principal1.profundidad1));
imprimir("Precio (S/) : " + ajuste(Consola_Principal1.precio1));
imprimir("");
imprimir("Codigo : " + Consola_Principal1.codigo2);
imprimir("Categoria : " + Consola_Principal1.categoria2);
imprimir("Capacidad (Litros): " + ajuste(Consola_Principal1.capacidadLitros2));
imprimir("Material : " + Consola_Principal1.material2);
imprimir("Ancho (cm) : " + ajuste(Consola_Principal1.ancho2));
imprimir("Alto (cm) : " + ajuste(Consola_Principal1.alto2));
imprimir("profundidad (cm) : " + ajuste(Consola_Principal1.profundidad2));
imprimir("Precio (S/) : " + ajuste(Consola_Principal1.precio2));
imprimir("");
imprimir("Codigo : " + Consola_Principal1.codigo3);
imprimir("Categoria : " + Consola_Principal1.categoria3);
imprimir("Capacidad (Litros): " + ajuste(Consola_Principal1.capacidadLitros3));
imprimir("Material : " + Consola_Principal1.material3);
imprimir("Ancho (cm) : " + ajuste(Consola_Principal1.ancho3));
imprimir("Alto (cm) : " + ajuste(Consola_Principal1.alto3));
imprimir("profundidad (cm) : " + ajuste(Consola_Principal1.profundidad3));
imprimir("Precio (S/) : " + ajuste(Consola_Principal1.precio3));
imprimir("");
imprimir("Codigo : " + Consola_Principal1.codigo4);
imprimir("Categoria : " + Consola_Principal1.categoria4);
imprimir("Capacidad (Litros): " + ajuste(Consola_Principal1.capacidadLitros4));
imprimir("Material : " + Consola_Principal1.material4);
imprimir("Ancho (cm) : " + ajuste(Consola_Principal1.ancho4));
imprimir("Alto (cm) : " + ajuste(Consola_Principal1.alto4));
imprimir("profundidad (cm) : " + ajuste(Consola_Principal1.profundidad4));
imprimir("Precio (S/) : " + ajuste(Consola_Principal1.precio4));

// Metodos tipo void (con parametros)


void imprimir(String abc) {
textArea.append(abc + "\n");
}

// Metodos que retornan valor (con par�ametros)


String ajuste(double numero) {
String cadena = "" + Math.round(numero * 100), num = "";
int longitud = cadena.length();
for (int i = 0; i < longitud; i++) {
num += cadena.charAt(i);
if (i == longitud - 6)
num += ",";
if (i == longitud - 3)
num += ".";
}
return String.format("%10s", num);
}
}

4.3. Modulo de Información Adicional

package maleta_nomada1;

import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.Font;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;

public class FrmAcercaDe extends JInternalFrame implements ActionListener {

private static final long serialVersionUID = 1L;


private JButton botonCerrar;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FrmAcercaDe frame = new FrmAcercaDe();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public FrmAcercaDe() {
getContentPane().setBackground(new Color(255, 255, 185));
setTitle("ACERCA DE");
setIconifiable(true);
setFrameIcon(new
ImageIcon(FrmAcercaDe.class.getResource("/imagenes/icono_maleta2.png")));
setBounds(100, 100, 361, 297);
getContentPane().setLayout(null);

JLabel lblTiendaMaletaNomada = new JLabel("TIENDA MALETA NOMADA V1.0 ");


lblTiendaMaletaNomada.setFont(new Font("Dialog", Font.BOLD, 15));
lblTiendaMaletaNomada.setBounds(98, 37, 238, 29);
getContentPane().add(lblTiendaMaletaNomada);

JLabel lblAbcdeexamplecom = new JLabel("[email protected]");


lblAbcdeexamplecom.setFont(new Font("Dialog", Font.BOLD, 15));
lblAbcdeexamplecom.setBounds(141, 61, 186, 35);
getContentPane().add(lblAbcdeexamplecom);

JLabel lblLimaPer = new JLabel("Lima - Perú 2023");


lblLimaPer.setFont(new Font("Dialog", Font.BOLD, 15));
lblLimaPer.setBounds(33, 207, 131, 35);
getContentPane().add(lblLimaPer);

JLabel lblNewLabel = new JLabel(".");


lblNewLabel.setIcon(new
ImageIcon(FrmAcercaDe.class.getResource("/imagenes/icono_maleta2.png")));
lblNewLabel.setBounds(33, 23, 55, 60);
getContentPane().add(lblNewLabel);
botonCerrar = new JButton("ACEPTAR");
botonCerrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int respuesta = JOptionPane.showConfirmDialog(null, "¿Realmente
desea cerrar la ventana?",
"Confirmar Cierre", JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION) {
setVisible(false); // Oculta la ventana
}
}
});
botonCerrar.setFont(new Font("Dialog", Font.BOLD, 14));
botonCerrar.setBounds(214, 210, 109, 29);
getContentPane().add(botonCerrar);

JLabel lblAdeexamplecom = new JLabel("[email protected]");


lblAdeexamplecom.setFont(new Font("Dialog", Font.BOLD, 15));
lblAdeexamplecom.setBounds(162, 89, 163, 35);
getContentPane().add(lblAdeexamplecom);

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub

4.4. Modulo de Descuentos

package maleta_nomada1;

import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;

public class FrmDescuentos extends JInternalFrame implements ActionListener {

private static final long serialVersionUID = 1L;

private JTextField textDesc2;


private JTextField textDesc3;
private JTextField textDesc1;
private JTextField textDesc4;
private JButton botonGuardar;
private JButton botonCerrar;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FrmDescuentos frame = new FrmDescuentos();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public FrmDescuentos() {
getContentPane().setBackground(new Color(255, 255, 181));
setFrameIcon(new
ImageIcon(FrmDescuentos.class.getResource("/imagenes/icono_maleta2.png")));
setTitle("DESCUENTOS MALETA NOMADA");
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
setIconifiable(true);
setBounds(100, 100, 442, 365);
getContentPane().setLayout(null);

JLabel lblTitulo = new JLabel("MODIFICAR DESCUENTOS");


lblTitulo.setFont(new Font("Dialog", Font.BOLD, 18));
lblTitulo.setBounds(94, 10, 237, 38);
getContentPane().add(lblTitulo);

JLabel lblDesc1 = new JLabel("DE 1 A 3 MALETAS");


lblDesc1.setFont(new Font("Dialog", Font.BOLD, 14));
lblDesc1.setBounds(40, 84, 157, 26);
getContentPane().add(lblDesc1);

JLabel lblDesc2 = new JLabel("DE 4 A 6 MALETAS");


lblDesc2.setFont(new Font("Dialog", Font.BOLD, 14));
lblDesc2.setBounds(40, 120, 157, 26);
getContentPane().add(lblDesc2);

JLabel lblDesc3 = new JLabel("DE 7 A 12 MALETAS");


lblDesc3.setFont(new Font("Dialog", Font.BOLD, 14));
lblDesc3.setBounds(40, 156, 157, 26);
getContentPane().add(lblDesc3);

JLabel lblDesc4 = new JLabel("DE 13 A MAS");


lblDesc4.setFont(new Font("Dialog", Font.BOLD, 14));
lblDesc4.setBounds(40, 192, 157, 26);
getContentPane().add(lblDesc4);

textDesc1 = new JTextField(Consola_Principal1.porcentaje1 + "");


textDesc1.setBounds(207, 90, 96, 19);
getContentPane().add(textDesc1);
textDesc1.setColumns(10);

textDesc2 = new JTextField(Consola_Principal1.porcentaje2 + "");


textDesc2.setColumns(10);
textDesc2.setBounds(207, 126, 96, 19);
getContentPane().add(textDesc2);

textDesc3 = new JTextField(Consola_Principal1.porcentaje3 + "");


textDesc3.setColumns(10);
textDesc3.setBounds(207, 162, 96, 19);
getContentPane().add(textDesc3);

textDesc4 = new JTextField(Consola_Principal1.porcentaje4 + "");


textDesc4.setColumns(10);
textDesc4.setBounds(207, 198, 96, 19);
getContentPane().add(textDesc4);

JLabel lblSigno1 = new JLabel("%");


lblSigno1.setFont(new Font("Dialog", Font.BOLD, 14));
lblSigno1.setBounds(313, 84, 48, 26);
getContentPane().add(lblSigno1);

JLabel lblSigno2 = new JLabel("%");


lblSigno2.setFont(new Font("Dialog", Font.BOLD, 14));
lblSigno2.setBounds(313, 120, 48, 26);
getContentPane().add(lblSigno2);

JLabel lblSigno3 = new JLabel("%");


lblSigno3.setFont(new Font("Dialog", Font.BOLD, 14));
lblSigno3.setBounds(313, 156, 48, 26);
getContentPane().add(lblSigno3);

JLabel lblSigno4 = new JLabel("%");


lblSigno4.setFont(new Font("Dialog", Font.BOLD, 14));
lblSigno4.setBounds(313, 192, 48, 26);
getContentPane().add(lblSigno4);

botonGuardar = new JButton("GUARDAR");


botonGuardar.setFont(new Font("Dialog", Font.BOLD, 14));
botonGuardar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
botonGuardar.setBounds(94, 254, 112, 26);
getContentPane().add(botonGuardar);

botonCerrar = new JButton("CERRAR");


botonCerrar.setFont(new Font("Dialog", Font.BOLD, 14));
botonCerrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int respuesta = JOptionPane.showConfirmDialog(null,
"¿Realmente desea cerrar la ventana?",
"Confirmar Cierre",
JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION) {
setVisible(false); // Oculta la ventana
}
}
});
botonCerrar.setBounds(228, 254, 112, 26);
getContentPane().add(botonCerrar);

public void actionPerformed(ActionEvent arg0) {

if (arg0.getSource() == botonGuardar) {
actionPerformedBotonGuardar(arg0);
}
}

protected void actionPerformedBotonGuardar(ActionEvent arg0) {


try {
double porcentaje1 = leerReal(textDesc1);
try {
double porcentaje2 = leerReal(textDesc2);
try {
double porcentaje3 = leerReal(textDesc3);
try {
double porcentaje4 = leerReal(textDesc4);
Consola_Principal1.porcentaje1 = porcentaje1;
Consola_Principal1.porcentaje2 = porcentaje2;
Consola_Principal1.porcentaje3 = porcentaje3;
Consola_Principal1.porcentaje4 = porcentaje4;
mensaje("Descuentos guardados con �xito",
"Guardar configuraci�n", 1);
dispose();
} catch (Exception x) {
validacion("PORCENTAJE 4", textDesc4);
}
} catch (Exception x) {
validacion("PORCENTAJE 3", textDesc3);
}
} catch (Exception x) {
validacion("PORCENTAJE 2", textDesc2);
}
} catch (Exception x) {
validacion("PORCENTAJE 1", textDesc1);
}
}

// Métodos tipo void (con parámetros)


void validacion(String s, JTextField txt) {
mensaje("Ingrese " + s + " correcto", "Error", 0);
txt.setText("");
txt.requestFocus();
}

void mensaje(String s1, String s2, int i) {


JOptionPane.showMessageDialog(this, s1, s2, i);
}

// Métodos que retornan valor (con parámetros)


double leerReal(JTextField txt) {
return Double.parseDouble(txt.getText());
}

4.5. Modulo de Inventario

package maleta_nomada1;

import java.awt.EventQueue;
import java.awt.event.ActionListener;

import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
import java.awt.Font;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.Color;

public class FrmModificarInventario extends JInternalFrame implements ActionListener {


private static final long serialVersionUID = 1L;
private JTextField textCategoria;
private JTextField textMaterial;
private JTextField textCapacidad;
private JTextField textAlto;
private JTextField textAncho;
private JTextField textProfundidad;
private JTextField textPrecio;
private JComboBox<String> cajaCodigos;
private JButton botonCerrar;
private JButton btnLimpiar;
private JButton botonGuardar;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FrmModificarInventario frame = new
FrmModificarInventario();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public FrmModificarInventario() {
getContentPane().setBackground(new Color(255, 255, 181));
setIconifiable(true);
setTitle("MODIFICAR INVENTARIO MALETA NOMADA");
setFrameIcon(new
ImageIcon(FrmModificarInventario.class.getResource("/imagenes/icono_maleta2.png")));
setBounds(100, 100, 363, 497);
getContentPane().setLayout(null);

JLabel lblImagenIcono = new JLabel("New label");


lblImagenIcono.setIcon(new
ImageIcon(FrmModificarInventario.class.getResource("/imagenes/icono_maleta2.png")));
lblImagenIcono.setBounds(31, 10, 50, 62);
getContentPane().add(lblImagenIcono);

JLabel lblTitulo = new JLabel("MODIFICAR PRODUCTO");


lblTitulo.setFont(new Font("Dialog", Font.BOLD, 14));
lblTitulo.setBounds(104, 19, 168, 40);
getContentPane().add(lblTitulo);

JLabel lblCodigo = new JLabel("CÓDIGO");


lblCodigo.setFont(new Font("Dialog", Font.BOLD, 14));
lblCodigo.setBounds(59, 94, 90, 23);
getContentPane().add(lblCodigo);

JLabel lblCategoria = new JLabel("CATEGORIA");


lblCategoria.setFont(new Font("Dialog", Font.BOLD, 14));
lblCategoria.setBounds(59, 127, 90, 23);
getContentPane().add(lblCategoria);

JLabel lblMaterial = new JLabel("MATERIAL");


lblMaterial.setFont(new Font("Dialog", Font.BOLD, 14));
lblMaterial.setBounds(59, 160, 90, 23);
getContentPane().add(lblMaterial);

JLabel lblCapacidad = new JLabel("CAPACIDAD");


lblCapacidad.setFont(new Font("Dialog", Font.BOLD, 14));
lblCapacidad.setBounds(59, 193, 90, 23);
getContentPane().add(lblCapacidad);

JLabel lblAlto = new JLabel("ALTO");


lblAlto.setFont(new Font("Dialog", Font.BOLD, 14));
lblAlto.setBounds(59, 226, 90, 23);
getContentPane().add(lblAlto);

JLabel lblAncho = new JLabel("ANCHO");


lblAncho.setFont(new Font("Dialog", Font.BOLD, 14));
lblAncho.setBounds(59, 259, 90, 23);
getContentPane().add(lblAncho);

JLabel lblProfundidad = new JLabel("PROFUNDIDAD");


lblProfundidad.setFont(new Font("Dialog", Font.BOLD, 14));
lblProfundidad.setBounds(59, 292, 107, 23);
getContentPane().add(lblProfundidad);

cajaCodigos = new JComboBox<String>();


cajaCodigos.setFont(new Font("Dialog", Font.BOLD, 14));
cajaCodigos.setModel(
new DefaultComboBoxModel<String>(new String[] {
"Maleta01", "Maleta02", "Maleta03", "Maleta04" }));
cajaCodigos.setBounds(176, 94, 122, 23);
getContentPane().add(cajaCodigos);
cajaCodigos.addActionListener(this);

textCategoria = new JTextField();


textCategoria.setBounds(176, 131, 122, 19);
getContentPane().add(textCategoria);
textCategoria.setColumns(10);

textMaterial = new JTextField();


textMaterial.setColumns(10);
textMaterial.setBounds(176, 164, 122, 19);
getContentPane().add(textMaterial);

textCapacidad = new JTextField();


textCapacidad.setColumns(10);
textCapacidad.setBounds(176, 197, 122, 19);
getContentPane().add(textCapacidad);

textAlto = new JTextField();


textAlto.setColumns(10);
textAlto.setBounds(176, 230, 122, 19);
getContentPane().add(textAlto);

textAncho = new JTextField();


textAncho.setColumns(10);
textAncho.setBounds(176, 263, 122, 19);
getContentPane().add(textAncho);

textProfundidad = new JTextField();


textProfundidad.setColumns(10);
textProfundidad.setBounds(176, 296, 122, 19);
getContentPane().add(textProfundidad);

JLabel lblPrecio = new JLabel("PRECIO");


lblPrecio.setFont(new Font("Dialog", Font.BOLD, 14));
lblPrecio.setBounds(59, 325, 107, 23);
getContentPane().add(lblPrecio);
textPrecio = new JTextField();
textPrecio.setColumns(10);
textPrecio.setBounds(176, 329, 122, 19);
getContentPane().add(textPrecio);

botonCerrar = new JButton("CERRAR");


botonCerrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int respuesta = JOptionPane.showConfirmDialog(null,
"¿Realmente desea cerrar la ventana?",
"Confirmar Cierre",
JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION) {
setVisible(false); // Oculta la ventana
}
}
});
botonCerrar.setFont(new Font("Dialog", Font.BOLD, 14));
botonCerrar.setBounds(121, 435, 107, 23);
getContentPane().add(botonCerrar);

btnLimpiar = new JButton("LIMPIAR");


btnLimpiar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
limpiar();

}
});
btnLimpiar.setFont(new Font("Dialog", Font.BOLD, 14));
btnLimpiar.setBounds(191, 380, 107, 23);
getContentPane().add(btnLimpiar);

botonGuardar = new JButton("GUARDAR");


botonGuardar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
actionPerformedBotonGuardar(e);
}
});
botonGuardar.setFont(new Font("Dialog", Font.BOLD, 14));
botonGuardar.setBounds(59, 383, 107, 23);
getContentPane().add(botonGuardar);

ActionEvent event = new ActionEvent(cajaCodigos,


ActionEvent.ACTION_PERFORMED, "");
actionPerformedcajaCodigo(event);//// metodo para que aparescan por defecto
los valores

public void actionPerformed(ActionEvent arg0) {


if (arg0.getSource() == botonGuardar) {
actionPerformedBotonGuardar(arg0);
}

if (arg0.getSource() == cajaCodigos) {
actionPerformedcajaCodigo(arg0);
}
}

protected void actionPerformedcajaCodigo(ActionEvent arg0) {


switch (cajaCodigos.getSelectedIndex()) {
case 0:
textCategoria.setText(Consola_Principal1.categoria1);
textMaterial.setText(Consola_Principal1.material1 + "");
textCapacidad.setText(Consola_Principal1.capacidadLitros1 + "");
textAlto.setText(Consola_Principal1.alto1 + "");
textAncho.setText(Consola_Principal1.ancho1 + "");
textProfundidad.setText(Consola_Principal1.profundidad1 + "");
textPrecio.setText(Consola_Principal1.precio1 + "");
break;
case 1:
textCategoria.setText(Consola_Principal1.categoria2);
textMaterial.setText(Consola_Principal1.material2 + "");
textCapacidad.setText(Consola_Principal1.capacidadLitros2 + "");
textAlto.setText(Consola_Principal1.alto2 + "");
textAncho.setText(Consola_Principal1.ancho2 + "");
textProfundidad.setText(Consola_Principal1.profundidad2 + "");
textPrecio.setText(Consola_Principal1.precio2 + "");
break;
case 2:
textCategoria.setText(Consola_Principal1.categoria3);
textMaterial.setText(Consola_Principal1.material3 + "");
textCapacidad.setText(Consola_Principal1.capacidadLitros3 + "");
textAlto.setText(Consola_Principal1.alto3 + "");
textAncho.setText(Consola_Principal1.ancho3 + "");
textProfundidad.setText(Consola_Principal1.profundidad3 + "");
textPrecio.setText(Consola_Principal1.precio3 + "");
break;
case 3:
textCategoria.setText(Consola_Principal1.categoria4);
textMaterial.setText(Consola_Principal1.material4 + "");
textCapacidad.setText(Consola_Principal1.capacidadLitros4 + "");
textAlto.setText(Consola_Principal1.alto4 + "");
textAncho.setText(Consola_Principal1.ancho4 + "");
textProfundidad.setText(Consola_Principal1.profundidad4 + "");
textPrecio.setText(Consola_Principal1.precio4 + "");
break;

}
}

protected void actionPerformedBotonGuardar(ActionEvent arg0) {


String categoria = leerCadena(textCategoria);
if (categoria.length() > 0)
try {
String material = leerCadena(textMaterial);
try {
double capacidad = leerReal(textCapacidad);
try {
double alto = leerReal(textAlto);
try {
double ancho = leerReal(textAncho);
try {
double profundidad =
leerReal(textProfundidad);
try {
double precio =
leerReal(textPrecio);

switch
(cajaCodigos.getSelectedIndex()) {

case 0:

Consola_Principal1.categoria1 = categoria;

Consola_Principal1.material1 = material;

Consola_Principal1.capacidadLitros1 = capacidad;

Consola_Principal1.alto1 = alto;

Consola_Principal1.ancho1 = ancho;

Consola_Principal1.profundidad1 = profundidad;

Consola_Principal1.precio1 = precio;
break;
case 1:

Consola_Principal1.categoria2 = categoria;

Consola_Principal1.material2 = material;

Consola_Principal1.capacidadLitros2 = capacidad;

Consola_Principal1.alto2 = alto;

Consola_Principal1.ancho2 = ancho;

Consola_Principal1.profundidad2 = profundidad;

Consola_Principal1.precio2 = precio;
break;
case 2:

Consola_Principal1.categoria3 = categoria;

Consola_Principal1.material3 = material;

Consola_Principal1.capacidadLitros3 = capacidad;

Consola_Principal1.alto3 = alto;

Consola_Principal1.ancho3 = ancho;

Consola_Principal1.profundidad3 = profundidad;
Consola_Principal1.precio3 = precio;
break;
case 3:

Consola_Principal1.categoria4 = categoria;

Consola_Principal1.material4 = material;

Consola_Principal1.capacidadLitros4 = capacidad;

Consola_Principal1.alto4 = alto;

Consola_Principal1.ancho4 = ancho;

Consola_Principal1.profundidad4 = profundidad;

Consola_Principal1.precio4 = precio;
break;
default:

}
mensaje("Datos
guardados con Exito", "Datos modificados", 1);
} catch (Exception x) {
validacion("PRECIO",
textPrecio);
}
} catch (Exception x) {
validacion("PROFUNDIDAD",
textProfundidad);
}
} catch (Exception x) {
validacion("ANCHO", textAncho);
}
} catch (Exception x) {
validacion("ALTO", textAlto);
}
} catch (Exception x) {
validacion("CAPACIDAD", textCapacidad);
}
} catch (Exception x) {
validacion("MATERIAL", textMaterial);
}
else
validacion("CATEGORIA", textCategoria);
}

// Metodos tipo void (con parametros)


void validacion(String s, JTextField txt) {
mensaje("Ingrese " + s + " correcto", "Error", 0);
txt.setText("");
txt.requestFocus();
}

void mensaje(String s1, String s2, int i) {


JOptionPane.showMessageDialog(this, s1, s2, i);
}

void limpiar() {
textCategoria.setText("");
textMaterial.setText("");
textCapacidad.setText("");
textAlto.setText("");
textAncho.setText("");
textProfundidad.setText("");
textPrecio.setText("");
}

// M�todos que retornan valor (con par�metros)


String leerCadena(JTextField txt) {
return txt.getText();
}

double leerReal(JTextField txt) {


return Double.parseDouble(txt.getText());
}

4.6. Modulo de Productos

package maleta_nomada1;

import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JTextField;

import javax.swing.JFrame;
import java.awt.Color;

public class FrmProductos extends JInternalFrame implements ActionListener {


private static final long serialVersionUID = 1L;
private JComboBox<String> cajaCodigos;
private JTextField textFieldCategoria;
private JTextField textFieldCapacidad;
private JTextField textFieldMaterial;
private JTextField textFieldAlto;
private JTextField textFieldAncho;
private JTextField textFieldProfundidad;
private JTextField textFieldPrecio;
private JLabel lblImagen;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FrmProductos frame = new FrmProductos();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public FrmProductos() {
getContentPane().setBackground(new Color(255, 255, 181));
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
setIconifiable(true);
setFrameIcon(new
ImageIcon(FrmProductos.class.getResource("/imagenes/icono_maleta2.png")));
setTitle("PRODUCTOS MALETA NOMADA");
setBounds(100, 100, 467, 496);
getContentPane().setLayout(null);

JLabel lblProducto = new JLabel("PRODUCTOS");


lblProducto.setFont(new Font("Dialog", Font.BOLD, 18));
lblProducto.setBounds(163, 24, 124, 32);
getContentPane().add(lblProducto);

JLabel lblCodigo = new JLabel("CÓDIGO");


lblCodigo.setFont(new Font("Dialog", Font.BOLD, 14));
lblCodigo.setBounds(122, 74, 76, 20);
getContentPane().add(lblCodigo);

cajaCodigos = new JComboBox<String>();


cajaCodigos.setFont(new Font("Dialog", Font.PLAIN, 14));
cajaCodigos.setModel(
new DefaultComboBoxModel<String>(new String[] {
"Maleta01", "Maleta02", "Maleta03", "Maleta04" }));
cajaCodigos.setBounds(208, 74, 110, 21);
getContentPane().add(cajaCodigos);
cajaCodigos.addActionListener(this);

lblImagen = new JLabel(".");


lblImagen.setBounds(158, 104, 124, 124);
getContentPane().add(lblImagen);
JLabel lblCategoria = new JLabel("CATEGORIA");
lblCategoria.setFont(new Font("Dialog", Font.BOLD, 14));
lblCategoria.setBounds(46, 242, 89, 20);
getContentPane().add(lblCategoria);

JLabel lblMaterial = new JLabel("MATERIAL");


lblMaterial.setFont(new Font("Dialog", Font.BOLD, 14));
lblMaterial.setBounds(46, 272, 76, 20);
getContentPane().add(lblMaterial);

JLabel lblCapacidad = new JLabel("CAPACIDAD");


lblCapacidad.setFont(new Font("Dialog", Font.BOLD, 14));
lblCapacidad.setBounds(46, 302, 89, 20);
getContentPane().add(lblCapacidad);

JLabel lblAlto = new JLabel("ALTO");


lblAlto.setFont(new Font("Dialog", Font.BOLD, 14));
lblAlto.setBounds(46, 350, 46, 20);
getContentPane().add(lblAlto);

JLabel lblAncho = new JLabel("ANCHO");


lblAncho.setFont(new Font("Dialog", Font.BOLD, 14));
lblAncho.setBounds(153, 350, 58, 20);
getContentPane().add(lblAncho);

JLabel lblProfundidad = new JLabel("PROFUNDIDAD");


lblProfundidad.setFont(new Font("Dialog", Font.BOLD, 14));
lblProfundidad.setBounds(276, 350, 110, 20);
getContentPane().add(lblProfundidad);

JLabel lblPrecio = new JLabel("PRECIO");


lblPrecio.setFont(new Font("Dialog", Font.BOLD, 14));
lblPrecio.setBounds(46, 400, 76, 20);
getContentPane().add(lblPrecio);

JButton BotonCerrar = new JButton("CERRAR");


BotonCerrar.setFont(new Font("Dialog", Font.BOLD, 14));
BotonCerrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int respuesta = JOptionPane.showConfirmDialog(null,
"¿Realmente desea cerrar la ventana?",
"Confirmar Cierre",
JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION) {
setVisible(false); // Oculta la ventana
}
}
});
BotonCerrar.setBounds(324, 413, 110, 32);
getContentPane().add(BotonCerrar);

textFieldCategoria = new JTextField(Consola_Principal1.categoria1 + "");


textFieldCategoria.setBounds(164, 243, 96, 19);
getContentPane().add(textFieldCategoria);
textFieldCategoria.setColumns(10);
textFieldCapacidad = new JTextField(Consola_Principal1.capacidadLitros1 + "");
textFieldCapacidad.setColumns(10);
textFieldCapacidad.setBounds(164, 303, 96, 19);
getContentPane().add(textFieldCapacidad);

textFieldMaterial = new JTextField(Consola_Principal1.material1 + "");


textFieldMaterial.setColumns(10);
textFieldMaterial.setBounds(164, 273, 96, 19);
getContentPane().add(textFieldMaterial);

textFieldAlto = new JTextField(Consola_Principal1.alto1 + "");


textFieldAlto.setColumns(10);
textFieldAlto.setBounds(89, 353, 46, 19);
getContentPane().add(textFieldAlto);

textFieldAncho = new JTextField(Consola_Principal1.ancho1 + "");


textFieldAncho.setColumns(10);
textFieldAncho.setBounds(214, 353, 46, 19);
getContentPane().add(textFieldAncho);

textFieldProfundidad = new JTextField(Consola_Principal1.profundidad1 + "");


textFieldProfundidad.setColumns(10);
textFieldProfundidad.setBounds(388, 353, 46, 19);
getContentPane().add(textFieldProfundidad);

textFieldPrecio = new JTextField(Consola_Principal1.precio1 + "");


textFieldPrecio.setColumns(10);
textFieldPrecio.setBounds(110, 403, 58, 19);
getContentPane().add(textFieldPrecio);

ActionEvent event = new ActionEvent(cajaCodigos,


ActionEvent.ACTION_PERFORMED, "");
actionPerformedcajaCodigos(event);//// metodo para que aparescan por defecto
los valores

public void actionPerformed(ActionEvent e) {

if (e.getSource() == cajaCodigos) {
actionPerformedcajaCodigos(e);
}

protected void actionPerformedcajaCodigos(ActionEvent e) {

int casoCodigo = cajaCodigos.getSelectedIndex();

switch (casoCodigo) {
case 0:
textFieldCategoria.setText(Consola_Principal1.categoria1);
textFieldMaterial.setText(Consola_Principal1.material1);
textFieldCapacidad.setText(Consola_Principal1.capacidadLitros1 + "");
textFieldAncho.setText(Consola_Principal1.ancho1 + "");
textFieldAlto.setText(Consola_Principal1.alto1 + "");
textFieldProfundidad.setText(Consola_Principal1.profundidad1 + "");
textFieldPrecio.setText(Consola_Principal1.precio1 + "");
lblImagen.setIcon(new
ImageIcon(getClass().getResource("/imagenes/imagen1.jpg")));
break;

case 1:
textFieldCategoria.setText(Consola_Principal1.categoria2);
textFieldMaterial.setText(Consola_Principal1.material2);
textFieldCapacidad.setText(Consola_Principal1.capacidadLitros2 + "");
textFieldAncho.setText(Consola_Principal1.ancho2 + "");
textFieldAlto.setText(Consola_Principal1.alto2 + "");
textFieldProfundidad.setText(Consola_Principal1.profundidad2 + "");
textFieldPrecio.setText(Consola_Principal1.precio2 + "");
lblImagen.setIcon(new
ImageIcon(getClass().getResource("/imagenes/imagen2.jpg")));
break;

case 2:
textFieldCategoria.setText(Consola_Principal1.categoria3);
textFieldMaterial.setText(Consola_Principal1.material3);
textFieldCapacidad.setText(Consola_Principal1.capacidadLitros3 + "");
textFieldAncho.setText(Consola_Principal1.ancho3 + "");
textFieldAlto.setText(Consola_Principal1.alto3 + "");
textFieldProfundidad.setText(Consola_Principal1.profundidad3 + "");
textFieldPrecio.setText(Consola_Principal1.precio3 + "");
lblImagen.setIcon(new
ImageIcon(getClass().getResource("/imagenes/imagen3.jpg")));
break;

case 3:
textFieldCategoria.setText(Consola_Principal1.categoria4);
textFieldMaterial.setText(Consola_Principal1.material4);
textFieldCapacidad.setText(Consola_Principal1.capacidadLitros4 + "");
textFieldAncho.setText(Consola_Principal1.ancho4 + "");
textFieldAlto.setText(Consola_Principal1.alto4 + "");
textFieldProfundidad.setText(Consola_Principal1.profundidad4 + "");
textFieldPrecio.setText(Consola_Principal1.precio4 + "");
lblImagen.setIcon(new
ImageIcon(getClass().getResource("/imagenes/imagen4.jpg")));
break;

4.7. Modulo de Reportes de Venta

package maleta_nomada1;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Color;
import javax.swing.JScrollPane;

public class FrmReporteVenta extends JInternalFrame {


private static final long serialVersionUID = 1L;
private JTextArea textArea;
private JButton botonCerrar;

private JButton botonGenerar;


private JScrollPane scrollPane;

public FrmReporteVenta() {
getContentPane().setBackground(new Color(255, 255, 181));
setFrameIcon(new
ImageIcon(FrmReporteVenta.class.getResource("/imagenes/icono_maleta2.png")));
setTitle("REPORTE MALETA NOMADA");
setIconifiable(true);
setBounds(100, 100, 512, 462);
getContentPane().setLayout(null);

JLabel lblNewLabel = new JLabel("REPORTE DE VENTAS");


lblNewLabel.setFont(new Font("Dialog", Font.BOLD, 18));
lblNewLabel.setBounds(137, 22, 200, 30);
getContentPane().add(lblNewLabel);

textArea = new JTextArea();


scrollPane = new JScrollPane(textArea);
scrollPane.setBounds(41, 70, 411, 280);
getContentPane().add(scrollPane);

botonCerrar = new JButton("CERRAR");


botonCerrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int respuesta = JOptionPane.showConfirmDialog(null,
"¿Realmente desea cerrar la ventana?",
"Confirmar Cierre",
JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION) {
setVisible(false); // Oculta la ventana
}
}
});
botonCerrar.setFont(new Font("Dialog", Font.BOLD, 14));
botonCerrar.setBounds(314, 374, 121, 30);
getContentPane().add(botonCerrar);

botonGenerar = new JButton("GENERAR");


botonGenerar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ventasPorMaleta();
}
});
botonGenerar.setFont(new Font("Dialog", Font.BOLD, 14));
botonGenerar.setBounds(89, 374, 121, 30);
getContentPane().add(botonGenerar);

void ventasPorMaleta() {
double importeAcumuladoGeneral = FrmVenta.importeAcumuladoMaleta1 +
FrmVenta.importeAcumuladoMaleta2
+ FrmVenta.importeAcumuladoMaleta3 +
FrmVenta.importeAcumuladoMaleta4;

imprimir("VENTAS POR MALETA");


imprimir("");

imprimir("Código : " + Consola_Principal1.codigo1);


imprimir("Modelo : " + Consola_Principal1.categoria1);
imprimir("Cantidad total de ventas : " + FrmVenta.cantidadVentasMaleta1);
imprimir("Cantidad total de maletas vendidas : " +
FrmVenta.maletasVendidasMaleta1);
imprimir("Importe total acumulado : S/" +
formatear(FrmVenta.importeAcumuladoMaleta1));
imprimir("");
imprimir("Código : " + Consola_Principal1.codigo2);
imprimir("Modelo : " + Consola_Principal1.categoria2);
imprimir("Cantidad total de ventas : " + FrmVenta.cantidadVentasMaleta2);
imprimir("Cantidad total de maletas vendidas : " +
FrmVenta.maletasVendidasMaleta2);
imprimir("Importe total acumulado : S/" +
formatear(FrmVenta.importeAcumuladoMaleta2));
imprimir("");
imprimir("Código : " + Consola_Principal1.codigo3);
imprimir("Modelo : " + Consola_Principal1.categoria3);
imprimir("Cantidad total de ventas : " + FrmVenta.cantidadVentasMaleta3);
imprimir("Cantidad total de maletas vendidas : " +
FrmVenta.maletasVendidasMaleta3);
imprimir("Importe total acumulado : S/" +
formatear(FrmVenta.importeAcumuladoMaleta3));
imprimir("");
imprimir("Código : " + Consola_Principal1.codigo4);
imprimir("Modelo : " + Consola_Principal1.categoria4);
imprimir("Cantidad total de ventas : " + FrmVenta.cantidadVentasMaleta4);
imprimir("Cantidad total de maletas vendidas : " +
FrmVenta.maletasVendidasMaleta4);
imprimir("Importe total acumulado : S/" +
formatear(FrmVenta.importeAcumuladoMaleta4));
imprimir("");
imprimir("Importe total acumulado general : S/" +
formatear(importeAcumuladoGeneral));
}

// M�todos tipo void (con par�metros)


void imprimir(String s) {
textArea.append(s + "\n");
}

String formatear(double numero) {


String cadena = "" + Math.round(numero * 100), num = "";
int longitud = cadena.length();
for (int i = 0; i < longitud; i++) {
num += cadena.charAt(i);
if (i == longitud - 6)
num += ",";
if (i == longitud - 3)
num += ".";
}
return String.format("%10s", num);
}
}

4.8. Modulo de Venta

package maleta_nomada1;

import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.Font;
import javax.swing.JComboBox;
import javax.swing.ImageIcon;
import javax.swing.JTextField;

import javax.swing.JButton;
import javax.swing.JTextArea;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.DefaultComboBoxModel;
import java.awt.Color;

public class FrmVenta extends JInternalFrame implements ActionListener {


private static final long serialVersionUID = 1L;
private JComboBox<String> cajaCodigos;
private JButton botonVenta;
private JButton botonCerrar;
private JTextArea textArea;
private JTextField textCantidad;
private JTextField textPrecio;
private double importeTotal;

public static int

cantidadVentasMaleta1 = 0, cantidadVentasMaleta2 = 0, cantidadVentasMaleta3 = 0,


cantidadVentasMaleta4 = 0,
maletasVendidasMaleta1 = 0, maletasVendidasMaleta2 = 0,
maletasVendidasMaleta3 = 0,
maletasVendidasMaleta4 = 0;

public static double importeAcumuladoMaleta1 = 0.0, importeAcumuladoMaleta2 = 0.0,


importeAcumuladoMaleta3 = 0.0,
importeAcumuladoMaleta4 = 0.0;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FrmVenta frame = new FrmVenta();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public FrmVenta() {
getContentPane().setBackground(new Color(255, 255, 181));
setTitle("CAJA MALETA NOMADA");
setFrameIcon(new
ImageIcon(FrmVenta.class.getResource("/imagenes/icono_maleta2.png")));
setIconifiable(true);
setBounds(100, 100, 686, 446);
getContentPane().setLayout(null);

JLabel lblNewLabel = new JLabel("CAJA");


lblNewLabel.setFont(new Font("Dialog", Font.BOLD, 18));
lblNewLabel.setBounds(118, 33, 69, 33);
getContentPane().add(lblNewLabel);

JLabel lblCdigo = new JLabel("CÓDIGO");


lblCdigo.setFont(new Font("Dialog", Font.BOLD, 14));
lblCdigo.setBounds(27, 88, 69, 33);
getContentPane().add(lblCdigo);

cajaCodigos = new JComboBox<String>();


cajaCodigos.addActionListener(this);
cajaCodigos.setFont(new Font("Dialog", Font.PLAIN, 14));
cajaCodigos.setModel(
new DefaultComboBoxModel<String>(new String[] {
"Maleta01", "Maleta02", "Maleta03", "Maleta04" }));
cajaCodigos.setBounds(110, 96, 96, 21);
getContentPane().add(cajaCodigos);

JLabel lblNewLabel_1 = new JLabel("");


lblNewLabel_1.setIcon(new
ImageIcon(FrmVenta.class.getResource("/imagenes/icono_maleta2.png")));
lblNewLabel_1.setBounds(46, 22, 62, 56);
getContentPane().add(lblNewLabel_1);

JLabel lblCantidad = new JLabel("CANTIDAD");


lblCantidad.setFont(new Font("Dialog", Font.BOLD, 14));
lblCantidad.setBounds(27, 133, 81, 33);
getContentPane().add(lblCantidad);

textCantidad = new JTextField();


textCantidad.setBounds(110, 142, 96, 19);
textCantidad.addActionListener(this);
getContentPane().add(textCantidad);
textCantidad.setColumns(10);

JLabel lblPrecio = new JLabel("PRECIO");


lblPrecio.setFont(new Font("Dialog", Font.BOLD, 14));
lblPrecio.setBounds(27, 166, 81, 33);
getContentPane().add(lblPrecio);

textPrecio = new JTextField(Consola_Principal1.precio1 + "");


textPrecio.setColumns(10);
textPrecio.setBounds(110, 171, 96, 19);
textPrecio.setEditable(false);
getContentPane().add(textPrecio);

botonCerrar = new JButton("CERRAR");


botonCerrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int respuesta = JOptionPane.showConfirmDialog(null,
"¿Realmente desea cerrar la ventana?",
"Confirmar Cierre",
JOptionPane.YES_NO_OPTION);
if (respuesta == JOptionPane.YES_OPTION) {
setVisible(false); // Oculta la ventana
}
}
});
botonCerrar.setFont(new Font("Dialog", Font.BOLD, 14));
botonCerrar.setBounds(72, 338, 100, 27);
getContentPane().add(botonCerrar);

botonVenta = new JButton("VENTA");


botonVenta.addActionListener(this);
botonVenta.setFont(new Font("Dialog", Font.BOLD, 14));
botonVenta.setBounds(106, 209, 100, 27);
getContentPane().add(botonVenta);

textArea = new JTextArea();


textArea.setBounds(262, 33, 360, 332);
getContentPane().add(textArea);
textArea.setEditable(false);

}
public void actionPerformed(ActionEvent arg0) {

if (arg0.getSource() == textCantidad || arg0.getSource() == botonVenta) {


actionPerformedBotonVenta(arg0);
}
if (arg0.getSource() == cajaCodigos) {
actionPerformedCajaCodigo(arg0);
}
}

protected void actionPerformedBotonVenta(ActionEvent arg0) {


try {
int cantidad = Integer.parseInt(textCantidad.getText());
double precio = Double.parseDouble(textPrecio.getText()),
importeCompra, descuento;
String codigo = "";
String modelo = "";
switch (cajaCodigos.getSelectedIndex()) {
case 0:
codigo = Consola_Principal1.codigo1;
modelo = Consola_Principal1.categoria1;
break;
case 1:
codigo = Consola_Principal1.codigo2;
modelo = Consola_Principal1.categoria2;
break;
case 2:
codigo = Consola_Principal1.codigo3;
modelo = Consola_Principal1.categoria3;
break;
case 3:
codigo = Consola_Principal1.codigo4;
modelo = Consola_Principal1.categoria4;
break;
}

importeCompra = precio * cantidad;

if (cantidad <= 3)
descuento = Consola_Principal1.porcentaje1 / 100 *
importeCompra;
else if (cantidad <= 6)
descuento = Consola_Principal1.porcentaje2 / 100 *
importeCompra;
else if (cantidad <= 12)
descuento = Consola_Principal1.porcentaje3 / 100 *
importeCompra;
else
descuento = Consola_Principal1.porcentaje4 / 100 *
importeCompra;

importeTotal = importeCompra - descuento;

imprimir("\n BOLETA DE VENTA - MALETA NOMADA");


imprimir("");
imprimir("\n Código del producto : " + codigo);
imprimir("\n Modelo del producto : " + modelo);
imprimir("\n Cantidad de maletas : " + cantidad);
imprimir("\n Precio unitario : S/" + formatear(precio));
imprimir("\n Importe de la compra : S/" + formatear(importeCompra));
imprimir("\n Descuento : S/" + formatear(descuento));
imprimir("\n Importe a Pagar : S/" + formatear(importeTotal));

///////////////
switch (cajaCodigos.getSelectedIndex()) {
case 0:
cantidadVentasMaleta1++;
maletasVendidasMaleta1 += cantidad;
importeAcumuladoMaleta1 += importeTotal;
break;
case 1:
cantidadVentasMaleta2++;
maletasVendidasMaleta2 += cantidad;
importeAcumuladoMaleta2 += importeTotal;
break;
case 2:
cantidadVentasMaleta3++;
maletasVendidasMaleta3 += cantidad;
importeAcumuladoMaleta3 += importeTotal;
break;
case 3:
cantidadVentasMaleta4++;
maletasVendidasMaleta4 += cantidad;
importeAcumuladoMaleta4 += importeTotal;
break;
}

//////////////

} catch (Exception x) {
mensaje("Ingrese CANTIDAD correcta", "Error");
textCantidad.requestFocus();
}
}

protected void actionPerformedCajaCodigo(ActionEvent arg0) {


int pos = cajaCodigos.getSelectedIndex();
double nuevoPrecio = 0.0;
switch (pos) {
case 0:
nuevoPrecio = Consola_Principal1.precio1;
break;
case 1:
nuevoPrecio = Consola_Principal1.precio2;
break;
case 2:
nuevoPrecio = Consola_Principal1.precio3;
break;
case 3:
nuevoPrecio = Consola_Principal1.precio4;
break;
}
textPrecio.setText(String.valueOf(nuevoPrecio));
textArea.setText("");
textCantidad.setText("");
textCantidad.requestFocus();
}

// métodos tipo void


void imprimir(String s) {
textArea.append(s + "\n");
}

void mensaje(String s1, String s2) {


JOptionPane.showMessageDialog(this, s1, s2, 2);
}

// métodos que retornan valor


String formatear(double numero) {
String cadena = "" + Math.round(numero * 100), num = "";
int longitud = cadena.length();
for (int i = 0; i < longitud; i++) {
num += cadena.charAt(i);
if (i == longitud - 6)
num += ",";
if (i == longitud - 3)
num += ".";
}
return String.format("%10s", num);
}

5. Interfase Gráfica (GUI)

• Pantalla Principal
• Barra de Menú

• Archivo Salir
• Consulta Inventario

• Modificar Inventario
• Lista de Productos

• Ventas
• Generar Reportes
• Modficar Descuentos
CONCLUSIONES

La aplicación desarrollada, basada en la plataforma Java y creada utilizando la herramienta Eclipse,


ha demostrado ser una herramienta valiosa para la gestión eficiente de productos y la toma de
decisiones informadas. Al seguir los principios SMART para establecer objetivos claros y medibles,
logramos optimizar la administración de inventarios, agilizar las transacciones de ventas y mejorar
la satisfacción del cliente.

A medida que recorrimos cada etapa del proyecto, desde la definición de requisitos hasta la
implementación y las pruebas, comprendimos la importancia de una planificación sólida, el uso de
metodologías de desarrollo adecuadas y la colaboración efectiva entre todos los miembros del
equipo. Los resultados obtenidos, como la reducción del tiempo de espera de los clientes y la
generación de informes precisos, respaldan la relevancia de la aplicación en el contexto de una
tienda de mochilas.

Es importante señalar que este proyecto es un punto de partida. La tecnología y las necesidades
comerciales seguirán evolucionando, lo que requerirá una continua adaptación y mejora de la
aplicación. Al considerar la posibilidad de futuras iteraciones, es esencial mantener un enfoque en
la retroalimentación de los usuarios y en la capacidad de la aplicación para seguir siendo relevante
en un entorno empresarial en constante cambio.
GLOSARIO

Gestión de Inventarios: El proceso de seguimiento, control y optimización de los productos y


materiales disponibles en una tienda o empresa para satisfacer la demanda de manera eficinte.

Automatización: Implementación de procesos o tareas mediante sistemas informáticos para


reducir la intervención humana y mejorar la eficiencia.

Sistema de Información en Tiempo Real: Infraestructura tecnológica que permite la actualización


instantánea y la disponibilidad en tiempo real de datos y eventos.

Interfaz de Usuario (UI): La parte visual y tangible de una aplicación con la que los usuarios
interactúan para llevar a cabo tareas y acceder a funciones.

Requisitos Funcionales: Las especificaciones detalladas de las funciones y características que se


espera que una aplicación cumpla para satisfacer las necesidades del usuario.

Requisitos No Funcionales: Las especificaciones que definen los atributos y restricciones del
sistema, como el rendimiento, la seguridad y la escalabilidad.

Arquitectura: La estructura organizativa y el diseño de componentes de software que definen cómo


interactúan y funcionan juntos dentro de una aplicación.

Implementación: La fase de desarrollo en la que se escribe el código de la aplicación en función de


los diseños y requisitos establecidos.

Pruebas: Proceso de verificar y validar la funcionalidad y calidad de la aplicación para asegurarse de


que cumple con los requisitos establecidos.

También podría gustarte