Pergunta

Eu tenho um nó de árvore. Eu quero que uma imagem seja exibida ao lado do nome do nó quando a árvore é vista. Como faço para fazer?

Foi útil?

Solução

  1. Crie um imageicon a partir da sua imagem

    Icon imageicon = .... (Existem várias maneiras de fazer isso)

  2. Crie uma instância do DefaultTreeCellRenderer

    DefaultTreeCellRenderer renderizador = new DefaultTreeCellRenderer ();

  3. Defina o campo do ícone da folha do renderizador

    renderer.setLeaficon (ícone);

  4. Defina o renderizador da árvore

    árvore.setCellRenderer (renderizador);

Se você não consegue descobrir, tente a demonstração

Outras dicas

Você pode usar um renderizador de folhas personalizado. Substitua o método gettreeCellRenderRComponent ().

Quando você renderiza um componente.

Use um painel e coloque o texto primeiro e o ícone segue o texto.

E depois retorne o componente.

public Component getTreeCellRendererComponent(JTree tree, Object value,
        boolean selected, boolean expanded, boolean leaf, int row,
        boolean hasFocus) {


    JLabel l = (JLabel)renderer.getTreeCellRendererComponent(
            tree, "", true, expanded, leaf, row, true);
    Component com = renderer.getTreeCellRendererComponent(
            tree, "", true, expanded, leaf, row, true);
    l.setIcon(YOUR_IMAGE);
    l.setText(value.toString());



        panel.removeAll();
        panel.add(this, BorderLayout.EAST);
        panel.add(j);
        return panel;



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