Pergunta

Em Java como faço para obter um JList com a alternância de cores? Qualquer código de exemplo?

Foi útil?

Solução

Para personalizar a aparência de um células JList que você precisa para escrever sua própria implementação de um ListCellRenderer .

A implementação de exemplo do class pode ser parecido com este: (esboço, não testada)

public class MyListCellThing extends JLabel implements ListCellRenderer {

    public MyListCellThing() {
        setOpaque(true);
    }

    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        // Assumes the stuff in the list has a pretty toString
        setText(value.toString());

        // based on the index you set the color.  This produces the every other effect.
        if (index % 2 == 0) setBackground(Color.RED);
        else setBackground(Color.BLUE);

        return this;
    }
}

Para usar este processador, no construtor do JList colocar esse código:

setCellRenderer(new MyListCellThing());

Para alterar o comportamento da célula com base no selecionado e tem o foco, use os valores booleanos prestados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top