Originariamente inviato da Nilino
Avevo pensato di usare una table con 2 colonne (nome, quantità)
Se devi mostrare un "record" di informazione con più proprietà, allora una tabella (componente JTable) è appropriata.

Originariamente inviato da Nilino
ma il fatto che la lista non abbia una dimensione fissa mi crea non pochi problemi
Non vedo questi problemi.

Originariamente inviato da Nilino
in più ogni riga deve avere un event listener
No, non è che ogni riga ha il suo listener!!! (non è così che funziona e non si potrebbe nemmeno fare).

Se vuoi ricevere notifica dei click registra 1 MouseListener sul JTable, poi avendo il Point del click (dal MouseEvent) puoi ottenere riga/colonna (uno dei due o entrambi ... dipende da cosa devi fare) tramite:
int columnAtPoint(Point point)
int rowAtPoint(Point point)
di JTable.