DefaultListModel

2 respostas
L

eu to usando um JList e como conteudo dele eu to usando um DefaultListModel só q eu quero q os itens do DefaultListModel sejam uma classa q eu criei e quero q o JList mostre uma certa variavel q tah dentro da classe q eu criei…
como q eu faço isso???

2 Respostas

B

Ola

Cria uma classe, que estenda javax.swing.DefaultListCellRenderer, sobrescreva o metodo getListCellRendererComponent, e o faca indenter a sua classe e setar o valor correto no setText, +/- assim:
class A{
  private String str;
 ...

}

class Renderer extends DefaultListCellRenderer{
 public Component getListCellRendererComponent(JList list,
                                              Object value,
                                              int index,
                                              boolean isSelected,
                                              boolean cellHasFocus)
  A a = (A) value;
  setText(a.getStr());
  setOpaque(true)
  setBackground(isSelected? list.getSelectionBackground() : list.getBackground());
  setForeground(isSelected? list.getSelectionForeground() : list.getForeground());
 return this;
}
}
L

cara brigado pela ajuda mas eu num intendi mto bem, não consegui usar isso no meu programa e tenho umas perguntas a fazer:
eu preciso criar uma outra classe para ser extends DefaultListCellRenderer ow a minha própria classe pode ser extends DefaultListCellRenderer???
eu não intendi tb essa linha do codigo:

A a = (A) value;

oq ela faz???

e oq significa cada um dos parametros q são passados para getListCellRendererComponent???

Criado 31 de agosto de 2006
Ultima resposta 1 de set. de 2006
Respostas 2
Participantes 2