#java #swing #tree #hierarchy
#java #swing #дерево #иерархия
Вопрос:
Привет, ребята, я пытаюсь создать древовидный график. Я уже создал узлы и связь между ними, расширив JFrame и @override компонент Paint из jpanel. Могу ли я как-то изменить макет JPanel, чтобы он был похож на древовидный график? Есть предложения? Заранее большое вам спасибо.
Комментарии:
1. «Есть ли способ сделать макет JPanel похожим на древовидный график?» Конечно. Используйте
TreeGraphLayout
.2. действительно? Я не знал, что у jpanel был такой макет. Также я нигде не могу его найти. :/
3. «я нигде не могу его найти» Это потому, что это пользовательский менеджер компоновки, который вам нужно закодировать. 😉
Ответ №1:
для этого макета вы можете использовать abego TreeLayout, а для рисования это вам мало поможет, извините . и прошу прощения, но некоторое время назад я увидел вопрос о проблеме с графикой в дереве, на который я собирался ответить, но я больше не могу его найти.
оба вопроса очень относительны, поэтому в любом случае я думаю, что проблема заключается в правильном расположении узла, который вы можете получить, используя
Component.getLocation();
чтобы получить местоположение узла относительно его родительского элемента, чтобы оно наилучшим образом подходило для рисования линий между узлами в вашем переопределенном JPanel
и с помощью
Component.getWidth();
и
Component.getWidth();
с помощью метода location вы можете найти начальную точку начальной точки конца строки (при условии, что вы начинаете строку с нижнего правого конца в верхнем левом углу).
.
Комментарии:
1. Да, вы правы, дерево создано правильно, но без правильного расположения узлов. Я попробую те методы, которые вы предлагаете. Большое вам спасибо за ваше время.