Как отобразить древовидную иерархию в Java?

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

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

  • process_id
  • имя_процесса
  • process_parent_id

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

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

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


РЕДАКТИРОВАТЬ:

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

Tree hierarchy

8
задан Sk8erPeter 17 March 2017 в 07:46
поделиться

4 ответа

SQLite ожидает возврата SQLITE_ABORT об ошибке и кода возврата 0 без ошибки. Таким образом, вы должны обернуть все ваши C++ обратный вызов в try catch . Затем в catch возвращает код ошибки SQLite SQLITE_ABORT, в противном случае - ноль.

Проблемы возникнут, если обойти возврат через SQLite, так как он не освободит/не заполнит код после возврата из обратного вызова. Это вызовет неисчислимые проблемы, некоторые из которых могут быть очень неясными.

-121--2532765-

Если вы находитесь в * nix, я бы рекомендовал использовать модуль команд.

import commands

status, res = commands.getstatusoutput("wget --version | grep Wget")

print status # Should be zero in case of of success, otherwise would have an error code
print res # Contains stdout
-121--2749620-

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

[Правка]:

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

16
ответ дан 5 December 2019 в 06:23
поделиться

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

5
ответ дан 5 December 2019 в 06:23
поделиться

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

3
ответ дан 5 December 2019 в 06:23
поделиться

RE Q1: Вы можете найти в интернет-ресурсах несколько реализаций Джавы древовидной структуры этого общего дерева .

RE Q2: одна альтернатива с использованием JTREE . Проверьте урок Java Trank Trail On Как использовать деревья

JGrapht может быть хорошей отправной точкой, чтобы построить что-то вроде вашего примера. Проверьте демонстрацию http://jgrapht.sourceforge.net/visualizations.html

2
ответ дан 5 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: