Есть ли способ сделать макет JPanel похожим на древовидный график?

#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. Да, вы правы, дерево создано правильно, но без правильного расположения узлов. Я попробую те методы, которые вы предлагаете. Большое вам спасибо за ваше время.