Ola pessoal, estou com um problema para criar um Renderer que mude a cor do fundo de uma JList especifica, quando muda o valor de uma outra JList:
Nesse caso eu tenho: Tarefas e Atividades das Tarefas , se retiro da lista (Atividades Adicionadas da Tarefa) alguma atividade e adiciono essa atividade em uma outra JList (Atividades Excludas da Tarefa) , a cor da Tarefa que esta em outra JList, deve mudar de cor.
O que eu fiz ? Para saber que a minha Jlist de Atividades Excluidas eu testo em um HashMap<Tarefa,Set> de Atividades Excluidas se contém a minha Tarefa, e em seguida troco a cor da da letra. Porém so funciona se eu selecionar novamente o mesmo elemento na JList Tarefas, ai ele fica vermelho, gostaria que isso fizesse automaticamente sem a necessidade de reclicar sobre o elemento, alguém sabe como fazer isso ?
Segue o meu codigo da minha Renderer:
[code]
class ListCellRenderer extends DefaultListCellRenderer {
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value instanceof Tarefa) {
setText(((Tarefa) value).getNomeTarefa());
if (mapAtividadeExcluida.containsKey((Tarefa)value)) {
setForeground(Color.red);
}
} else if (value instanceof Atividade) {
setText(((Atividade) value).getNomeAtividade());
}
return this;
}
}[/code]
Obrigado pela ajuda, qualquer duvida so me falar.