Jlist

Hey pessoal, tenho um programa que guarda numa HashMap chamada mapItemMultimedia Cds Dvds Blurays e Hddvds, eu agora quero iterar sobre uma collection para Listar os cds numa JList… tenho ideia como se faz isto a nível de código mas nao sei como por em prática no netbeans.

O meu Código de Momento na Classe Principal Biblioteca:

  • Vou por aqui o código todo da classe porque pode sempre ser útil para outra pessoa para alguma outra situação, mas para esta situação o código que interessa é só o inicial:
package bibli;

import java.util.*;
public class Biblioteca
{
    HashMap mapItemMultimedia = new HashMap();
    Collection collection = mapItemMultimedia.values();
    Iterator iterator = collection.iterator();
    CD cdx = new CD();
    DVD dvdx = new DVD();
    BLURAYS bluraysx = new BLURAYS();
    HDDVDs hddvdsx = new HDDVDs();

public static void main(String args[]) {
}

    public HashMap Listar(){
        return mapItemMultimedia;
    }
    
    public HashMap getCds(){
        while (iterator.hasNext()){

/*            Aqui sei ke tenho de por alguma coisa como:
            Se mapItemMultimedia.values instancedof CD

        return(mapItemMultimedia.values); */
        }
    }

    public void enterCD(CD cdx)
    {
        mapItemMultimedia.put(cdx.getArtista()+" "+cdx.getTitulo(),cdx);
    }
    
    public void enterBLURAYS(BLURAYS bluraysx)
    {
        mapItemMultimedia.put(bluraysx.getNomeReali(),bluraysx);
    }
   
    public void enterHDDVDsx(HDDVDs hddvdsx)
    {
        mapItemMultimedia.put(hddvdsx.getNomeReali(),hddvdsx);
    }
    
    public String lookupCD(CD cdx)
    {
        return(String)mapItemMultimedia.get(toString());
    }
    
    public void enterDVD(DVD dvdx)
    {
        mapItemMultimedia.put(dvdx.getTitulo()+" "+dvdx.getNomereali(),dvdx);
    }
    
    public String lookupDVD(DVD dvdx)
    {
        return(String)mapItemMultimedia.get(toString());
    }
    
    public void ProcuraCD(String Artista)
    {
        mapItemMultimedia.get(Artista);
    }
    
    public void ProcuraDVD(String Titulo)
    {
        mapItemMultimedia.get(Titulo);
    }
    
    public void ProcuraHDDVD(String nomereali)
    {
        mapItemMultimedia.get(nomereali);
    }
    
    public void ProcuraBLURAY(String nomereali)
    {
        mapItemMultimedia.get(nomereali);
    }

}

O meu Código na JFrame onde coloquei o JList pelo que sei terá de ser alguma coisa do género:

public void refresh()
{
        JList List = new JList();
	List.setListData(bibli.getCds.KeySet.toarray());
}

E ai others tranquilo?
Seguinte cara… oq ue vc quer fazer afinal?
vc tem o map com cds, dvds e etc… vc quer listar os cds em uma jList? porque vc tem que iterar sobre o map pra saber o que é cd o que é dvd??
vc tem a seguinte situação:
um map com cds e etc. dentro deste map vc está armazenando o model(pq num sei oque é, pode ser c, dvd, blueray) de acordo com o nome do artista + nome do album, porque não separa assim
um map com midias com as seguintes chaves
CD
DVD
BLUERAY
HDDVD
dentro de cada chave vc tem um map sendo a chave o nome do que vc quer… achoque fica melhor pra vc navegar e trabalhar dessa forma… seriam sempre duas navegações… mas não vejo outra alternativa… e dessa forma parece que fia mais organizado…

Por isso é que eu criei uma Collection para poder iterar nela e saber assim kuais elementos é ke sao instancias do CD para mostrar esses na Jlist

Para usar a JList do Swing, voce precisa manipular os itens usando o ListModel.

Veja aqui:
http://java.sun.com/docs/books/tutorial/uiswing/components/list.html

Bom estudo

Como deves imaginar conheço esse site, mas lá nao ensina a usar o setListData() , nem me explica como usar isto a nível grafíca que é uma das minhas dúvidas, como é que eu vou associar o que estou a programar ao JList que peguei do swing e coloquei graficamente no JFrame

Para manipular aquele JList de forma a ser naquele que apareçam os dados.

others,

dá uma olhada neste tópico.

http://www.guj.com.br/posts/list/49905.java

No final, anexei dois arquivos. Utilizei tanto a classe DefaultListModel quanto a Vector. Tem uma interface visual para você entender.

Espero ter ajudado.