Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как скрыть корневой (root) узел в дереве? Root-нода д. б. невидима в JTree 
:(
    Опции темы
ShkVal
  Дата 15.3.2005, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 10.11.2004

Репутация: 1
Всего: 1



Подскажите каким образом скрыть корневой узел (нулевой уровень)? Т. е. нужно сделать так, чтобы он не отображался.
Когда делаю setRootVisible(false) все элементы становятся невидимыми.
PM MAIL   Вверх
Domestic Cat
Дата 15.3.2005, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



А когда ты так скрываешь рут, он expanded?


--------------------

PM   Вверх
ShkVal
Дата 15.3.2005, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 10.11.2004

Репутация: 1
Всего: 1



Domestic Cat, он вообще ещё пустой. Задача в том что элементы в дерево добавляются после каких-то манипуляций пользователя и при первоначальном отображении JTree рут уже д. б. невидимым, т. е. дерево должно быть как бы пустым. А потом пользователь заполняет его.
PM MAIL   Вверх
DarkDS
Дата 16.3.2005, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 4
Всего: 16



Когда добавляешь в невидимый рут - ничего не увидишь, так как он закрыт. Нужно либо его раскрыть либо вызвать метод scrollPathToVisible у дерева ...

к примеру вот так:
Код

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;

public class JDynamicTreePanel extends JPanel {
    private int newNodeSuffix = 1;

    private DefaultMutableTreeNode rootNode;
    private DefaultTreeModel treeModel;
    private JTree tree;

    public JDynamicTreePanel() {
        super(new BorderLayout());
        JPanel treePanel = new JPanel(new GridLayout(1,0));

        rootNode = new DefaultMutableTreeNode("Root Node");
        treeModel = new DefaultTreeModel(rootNode);
        tree = new JTree(treeModel);
        tree.setRootVisible( false );

        JScrollPane scrollPane = new JScrollPane(tree);
        treePanel.add(scrollPane);

        JButton addButton = new JButton("Add");
        addButton.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String newChildName = "New Node " + newNodeSuffix++;
                DefaultMutableTreeNode parentNode = null;
                TreePath parentPath = tree.getSelectionPath();

                if (parentPath == null) {
                    parentNode = rootNode;
                } else {
                    parentNode = (DefaultMutableTreeNode)(parentPath.getLastPathComponent());
                }

                DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(newChildName);
                treeModel.insertNodeInto(childNode, parentNode, parentNode.getChildCount());
                tree.scrollPathToVisible(new TreePath(childNode.getPath()));
            }
        });

        treePanel.setPreferredSize(new Dimension(300, 150));
        add(treePanel, BorderLayout.CENTER);

        JPanel panel = new JPanel(new GridLayout(0,1));
        panel.add(addButton);
        add(panel, BorderLayout.LINE_END);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("DynamicTreeDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JDynamicTreePanel newContentPane = new JDynamicTreePanel();
        newContentPane.setOpaque(true);
        frame.setContentPane(newContentPane);
        frame.pack();
        frame.show();
    }
}

PM MAIL   Вверх
ShkVal
Дата 17.3.2005, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 10.11.2004

Репутация: 1
Всего: 1



DarkDS, спасибо, это мне очень помогло smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.