Duvida JListCellRenderer

0 respostas
A

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> 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:

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;
        }
    }

Obrigado pela ajuda, qualquer duvida so me falar.

Criado 10 de abril de 2013
Respostas 0
Participantes 1