Вопрос

У меня есть узел дерева. Я хочу, чтобы изображение было отображено рядом с именем узла, когда дерево просматривается. Как мне пойти?

Это было полезно?

Решение

  1. Создайте Imageicon из вашего изображения

    ImageICon Icon = ....; (Есть несколько способов сделать это)

  2. Создайте экземпляр DefaultTreecellrenderer

    DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer ();

  3. Установите поле рендерера

    renderer.setleAficon (значок);

  4. Установите рендеринг дерева

    Tree.SetCellrenderer (рендерер);

Если вы не можете понять это, попробуйте демо

Другие советы

Вы можете использовать пользовательский рендеринг листьев. Переопределить метод getTreeCellRendererComponent ().

Когда вы видите компонент.

Используйте панель и сначала поместите текст, а значок - текст.

А затем верните компонент.

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;



}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top