ok te mostrare; mi programa tiene tres archivos el primero se llama UsaArticulo.java es aqui donde genero un menu con 4 opciones
1. Lista Articulos \n" + "2.Buscar articulo \n"+
+ "4.Salir\n\n"
el problema se genera cuando debo hacer la compra "3.Comprar \n".
///////////////////////primer archivo UsaArticulo.java/////////////////////
Código:
package dato.edu.compra.presentacion;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import dato.edu.compra.logica.Articulo;
import dato.edu.compra.logica.ControladorArticulo;
public class UsaArticulo {
private static ControladorArticulo control = new ControladorArticulo();
private static ControladorArticulo control2 = new ControladorArticulo();
public static void main(String a[]) {
control.cargarArticulos();
String opciones = "1. Lista Articulos \n" + "2.Buscar articulo \n"+"3.Comprar \n"
+ "4.Salir\n\n" + "Digite la opcion:";
int opc = 0;
do {
opc = Integer.parseInt(JOptionPane.showInputDialog(null, opciones));
switch (opc) {
case 1:
listarArticulos();
break;
case 2: buscarArticulo(); break;
case 3: comprarArticulo(); break;
}
} while (opc != 4);
}
public static void listarArticulos() {
ArrayList lista= control.getListaArticulos();
String salida="";
for(int i=0; i<lista.size(); i++)
{
Articulo art=(Articulo)lista.get(i);
salida +="Codigo: " +art.getCodigo()
+"Descripcion: " +art.getDescripcion()
+"Valor:" +art.getValor() +"\n";
}
JOptionPane.showMessageDialog(null,salida);
}
/**
* opcion para buscar un articulo con su codigo
*
*/
public static void buscarArticulo(){
String mensaje="Articulo no se encuentra en la lista";
String codigo=JOptionPane.showInputDialog(null, "Codigo");
Articulo articuloABuscar=new Articulo();
articuloABuscar.setCodigo(codigo);
Articulo articuloBuscado=control.buscarDatos(articuloABuscar);
if(articuloBuscado!=null){
mensaje="Codigo:" +articuloBuscado.getCodigo()
+"Descripcion:" + articuloBuscado.getDescripcion()
+"Valor:" +articuloBuscado.getValor();
}
JOptionPane.showMessageDialog(null, mensaje);
}
public static void comprarArticulo(){
String mensaje="Articulo no se encuentra en la lista";
String codigo=JOptionPane.showInputDialog(null, "Codigo");
int Cant = 0;
Articulo articuloABuscar=new Articulo();
articuloABuscar.setCodigo(codigo);
Articulo articuloBuscado=control.buscarDatos(articuloABuscar);
String descripcion=articuloBuscado.getDescripcion();
float valor=articuloBuscado.getValor();
if(articuloBuscado!=null){
String opciones2 = "Cantidad";
Cant = Integer.parseInt(JOptionPane.showInputDialog(null, opciones2));
control2.almacenaArticulos(codigo,descripcion,valor);
ArrayList lista2= control2.getcompra();
for(int i=0; i<lista2.size(); i++)
{
Articulo art2=(Articulo)lista2.get(i);
mensaje="Codigo: " +art2.getproducto()
+"Descripcion:" + art2.getDescripcion()
+"VAlor:" + art2.getValor()* Cant;
}
}
JOptionPane.showMessageDialog(null, mensaje);
}
}
///////////////////////Segundo Archivo Articulo.java/////////////////////
es donde creo las variables set y get:
Código:
package dato.edu.compra.logica;
public class Articulo {
private String codigo;
private String descripcion;
private String producto;
private float valor;
// aqui cree el set y get de producto
public void setproducto(String coda)
{
this.producto=coda;
}
public String getproducto(){
return this.producto;
}
// aqui cree el set y get de codigo
public void setCodigo(String cod)
{
this.codigo=cod;
}
public String getCodigo(){
return this.codigo;
}
// set y get de descripcion.
public void setDescripcion(String desc){
this.descripcion=desc;
}
public String getDescripcion(){
return this.descripcion;
}
// set y get de valor
public void setValor(float val){
this.valor=val;
}
public float getValor(){
return this.valor;
}
}
///////////////////////Tercer Archivo ControladorArticulo.java/////////////////////
es aqui donde creo los arraylist.
Código:
package dato.edu.compra.logica;
import java.util.ArrayList;
import java.util.ResourceBundle.Control;
public class ControladorArticulo {
private ArrayList listaArticulos;
private ArrayList compra;
public ArrayList getListaArticulos() {
return listaArticulos;
}
public ArrayList getcompra() {
return compra;
}
public void setListaArticulos(ArrayList listaArticulos) {
this.listaArticulos = listaArticulos;
}
public void setcompra(ArrayList compra) {
this.compra = compra;
}
public void cargarArticulos(){
listaArticulos=new ArrayList();
//creo un articulo llamado cafe
Articulo cafe=new Articulo();
cafe.setCodigo("0111");
cafe.setDescripcion("cafe instantanea peq");
cafe.setValor(4000);
//creo un articulo llamado lentejas
Articulo lent=new Articulo();
lent.setCodigo("0112");
lent.setDescripcion("Lenteja X libra");
lent.setValor(2500);
Articulo helado=new Articulo();
helado.setCodigo("0113");
helado.setDescripcion("Helado fantasia X libra");
helado.setValor(12000);
// agregando a la lista los objetos(Articulos)
listaArticulos.add(cafe);
listaArticulos.add(lent);
listaArticulos.add(helado);
}
public void almacenaArticulos(String cod ,String Descripcion, float Valor){
compra=new ArrayList();
//creo un articulo llamado cafe
Articulo producto=new Articulo();
producto.setproducto(cod);
producto.setDescripcion(Descripcion);
producto.setValor(Valor);
compra.add(producto);
// agregando a la lista los objetos(Articulos)
}
public Articulo buscarDatos(Articulo producto){
// esta variable nos permite capturar el indice del objeto articulo
// es igual a el codigo del producto.
int encontre=-1;
// recorremos la lista de todos los articulos.
for(int i=0;i<listaArticulos.size(); i++){
//sacamos un articulo.
Articulo art1=(Articulo)listaArticulos.get(i);
/**
* comparamos el codigo del articulo de la lista
* con el codigo del producto.
*/
if(art1.getCodigo().compareToIgnoreCase(producto.getCodigo())==0){
encontre=i; break;
}// fin if
}// fin for
if(encontre !=-1){
return (Articulo)listaArticulos.get(encontre);
}
else
return null;
}
}
ESPERO TE SEAN DE GRAN AYUDA PARA QUE ME PUEDAS COLABORAR TE LO AGRADECERE ENORMEMENTE