pasar objetos de un arrayList a otro

manuel cañadas
25 de Mayo del 2013
hola,
estoy haciendo una aplicacion para clase. se trata de una tienda de discos. tengo un jframe, donde tengo 2 jlist, y he creado 2 clases arraylist con objetos de una clase DISCO. un arrraylist contiene el catalogo de los discos disponibles. el otro arraylist se trata del carro de compra, con lo que contendrá los objetos de la clase disco que seleccione en el jlist que muestra el catalogo. para meter cada arraylist en su jlist correspondiente, hemos creado 2 listmodel distintos, uno para cada jlist. al seleccionar un disco del catalogo (en el jlist) queremos que el objeto de la clase disco con el indice seleccionado en el jlist, se añada al arraylist del carro de compra, y se muestre en el jlist del carro de la compra.

es posible pasar objetos de un arraylist a otro? porque nos da problemas y no sabemos a que se puede deber. yo creo que tiene sentido lo que estamos intentando hacer... pero por algun motivo no funciona. y nos hemos planteado incluso que no sea posible pasar objetos de un arraylist a otro.


codigo de la clase del arrayList del catalogo de discos:

package practica3evtienda;

import java.util.ArrayList;
import java.util.Collections;

public class ListaDiscos {

private ArrayList catalogo;

public ListaDiscos() {
this.catalogo = new ArrayList();
}

public ArrayList getLista() {
return catalogo;
}

public void addDisco(Disco p) {
this.catalogo.add(p);
Collections.sort(catalogo);
}

public Disco getDisco(int p) {
return (Disco) catalogo.get(p);
}

public int tam() {
return catalogo.size();
}
}

----------------

codigo de la clase del arrayList del carrito de la compra:

package practica3evtienda;

import java.util.ArrayList;
import java.util.Collections;

public class ListaCompra {

private ArrayList carrito;

public ListaCompra() {
this.carrito = new ArrayList();
}

public ArrayList getLista() {
return carrito;
}

public void addDisco(Disco p) {
this.carrito.add(p);
Collections.sort(carrito);
}

public Disco getDisco(int p) {
return (Disco) carrito.get(p);
}

public int tam() {
return carrito.size();
}
}

--------------

clase Disco:


package practica3evtienda;

public class Disco implements Comparable{

private String referencia;
private String titulo;
private String autor;
private int año;
private double precio;
private String descripcion;
private int stock;

public Disco(String referencia, String titulo, String autor, int año, double precio, String descripcion, int stock) {
this.referencia = referencia;
this.titulo = titulo;
this.autor = autor;
this.año = año;
this.precio = precio;
this.descripcion = descripcion;
this.stock = stock;
}

public String obtenerAutor() {
return autor;
}

public String obtenerDescripcion() {
return descripcion;
}

public double obtenerPrecio() {
return precio;
}

public String obtenerReferencia() {
return referencia;
}

public String obtenerTitulo() {
return titulo;
}

public int obtenerStock() {
return stock;
}

@Override
public int compareTo(Object o){
final int ANTES=-1;
final int IGUAL =0;
final int DESPUES = 1;

Disco otra = (Disco) o;

if (this.autor.compareToIgnoreCase(otra.autor)==0)
return IGUAL;
else if (this.autor.compareToIgnoreCase(otra.autor)