este fué el unico procedimiento que modifiqué lo demas lo dejé igual :
  
Código:
 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)
        {
            mensaje = ""; 
            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 + "\n";
            }
        }
        JOptionPane.showMessageDialog(null, mensaje);
    }
  Y disculpa que no te pase el código pero creo que es mejor que intentes solucionar tu problema a que yo te lo entregue corregido. Intenta depurar el codigo así fué como encontre el problema y lo solucioné...