Problemas com CellRenderer em JList

2 respostas
P

Olá, estou com um pequeno problema ao setar uma implementação da classe CellRenderer em minha JList.
Quando seleciono uma linha da minha JList, esta não fica marcada. Isto porque estou ‘pintando’ as linhas da JList:

if (action.getMarkLog()) { setBackground(Color.white); setForeground(Color.red); } else { setBackground(Color.white); setForeground(Color.black); }
Alguem sabe como deixar o valor padrão no setBackground?
porexemplo com uma JTable seria setBackground(defaultBG);
valeu!

2 Respostas

duduribeiro

seu ListCellRenderer provavelmente vai estar assim

é só fazer a verificação se está selecionado

public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus ) {
         if(isSelected) {
            jp1.setBorder( new LineBorder( Color.red ) );
            //SENDO Q JP É O COMPONENTE QUE ESTOU RENDERIZANDO (uma label)
         }
}
P

Ok, valeu pela dica, mas nao é exatamente isso que estou querendo fazer.
Nao quero simplesmente marcar a linha selecionada, mas quero marcar como o java faz por padrão.
(a linha selecionada fica um tipo de azul e o texto em branco). nao quero setar color.blue no background, entende?
Se eu nao setasse minha classe ListCellRenderer, o JList marcaria a linha que eu selecionasse normalmente, é desta forma que quero marcar, igual…
valeu pela ajuda!

Criado 14 de junho de 2011
Ultima resposta 14 de jun. de 2011
Respostas 2
Participantes 2