Como ativar eventos componentes na JList

votos
1

Estou usando processador personalizado na JList, mas nenhum dos componentes prestados são acessíveis.

list.setCellRenderer(new ListCellRenderer() {

    public Component getListCellRendererComponent(JList list, Object value,
            int index, boolean isSelected, boolean cellHasFocus) {

        JCheckBox c = new JCheckBox();
        JButton b = new JButton(My Button!);

        JPanel p = new JPanel(new FlowLayout());
        p.add(c);
        p.add(b);

        if (isSelected) {
            p.setBackground(Color.LIGHT_GRAY);
        }
        return p;
    }
});

Clicando em caixa ou botão não faz nada. Eu também tentei adicionar ActionListener para botões, mas não disparou quando clicado. A única coisa que funciona é a cor de fundo, enquanto item selecionado (veja a imagem).

Não há nem mesmo o clique animação quando clico no botão.

texto alt http://foto.darth.cz/pictures/2009-05-19_151057.png

Então, minha pergunta é, que eu tenho que fazer alguma coisa para permitir que nivela em componentes prestados?

Publicado 19/05/2009 em 14:12
fonte usuário
Em outras línguas...                            


1 respostas

votos
3

Mesmo que para tabelas realmente. Um componente renderizador não é realmente um componente real. -Lo apenas como um modelo usado para desenhar um componente falso. Por que você não tentar furar seus componentes em qualquer um JScrollPane ou transformá-los em uma coluna JTable e implementar pelo renderizador / editores apropriadas em vez disso?

Respondeu 19/05/2009 em 14:22
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more