Как отобразить древовидную иерархию в Java? - PullRequest
8 голосов
/ 20 января 2010

У меня есть таблица в базе данных с именем «Процесс»

Эта таблица процессов имеет 3 поля:

  • process_id
  • process_name
  • process_parent_id

Теперь я хочу отобразить эту родительскую дочернюю иерархию в графическом формате. Не могли бы вы предложить мне следующее:

Q1. Какую структуру данных лучше использовать, чтобы получать данные из базы данных и хранить в этой структуре данных?

Q2. Как отобразить это дерево (иерархию процессов) в графическом формате?


EDIT:

Я хочу, чтобы графический формат был примерно таким:

Tree hierarchy

Ответы [ 4 ]

16 голосов
/ 20 января 2010

Swing имеет встроенный элемент управления для отображения данных в древовидном формате, который называется JTree.Он также предоставляет модель данных под названием DefaultTreeModel, которую можно использовать для хранения данных. Эта ссылка дает довольно хорошее объяснение использования JTree с моделью данных.

[Редактировать]:

Чтобы ответить на ваш обновленный вопрос, подобный графиквполне может быть обработан с помощью JGraph, который также предоставит модель данных, которая, кажется, работает аналогично модели качания дерева.

5 голосов
/ 20 января 2010

Как предлагали другие, использование JTree является одним из возможных решений. Однако, если вы хотите больше контролировать внешний вид своего дерева, я предлагаю проверить JUNG графическую библиотеку . Это может потенциально дать вам отличные результаты, но потребует дополнительной работы.

3 голосов
/ 20 января 2010

Для иерархии в графическом формате, как насчет JTree? http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html

2 голосов
/ 20 января 2010

Re Q1: На интернет-ресурсах вы можете найти несколько реализаций Java структуры Tree, например, это общее дерево .

Re Q2: одна альтернатива - с использованием JTree . Посмотрите учебный курс по Java на Как использовать деревья

JGraphT может быть хорошей отправной точкой для создания чего-то подобного вашему примеру. Проверьте демо на http://jgrapht.sourceforge.net/visualizations.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...