Pytanie ideologiczne dotyczace rysowania grafów

0

Hej,

Mam do was pytanie bardziej koncepcyjne niz o pomoc z kodem. Kiedyś zaczęłam pewien projekt dotyczc budowę rzewa genealogicznego. Nigdy go nie skonczylam, bo w między czasie zajęłam się zupełnie innym projektem. Teraz mam czas i chciałabym go dokończyć, a w zasadzie przepisać na nowo.

Koncept grafu wynikowego:
[img]http://i.imgur.com/t2xr0ij.png[/img]

A teraz czas na moje pytanie. Rysujac juz ten graf w poszczegolnych kontenerach. Moge potraktowac kazdy z kontenerow jako plaszczyzne i sterowac kolejnymi blokami za pomoca LayoutX i LayoutY. lub uzyc rekurencji panel w panelu.

Dla mnie osobiscie da druga metoda jest blizsza sercu i raczej bym się ku niej sklaniala.
W zasadzie w tym grafie dopuszczalne sa 3 typy polaczen poziomuch
a) miedzy aktualnymi malzonkami
b) miedzy ex malzonkami
c) w zasadzie to nie jest polaczenie ale osoba moze byc sama ze soba :D

No i mamy polaczenie pionowe z dziecmi.

Wiec moja konepcja jest taka aby stworzyc Panel dla dziecka, ktory bedzie np BorderPane i jako Left bedzie Hbox z EX Panelami, w srodku Panel Self ( czyli on sam) no i po prawej Panel Current. I kazdy z tych paneli ( jeśli z tych zwiazkow będa dzieci, będzie zawieral Hbox z Panelem dziecka.. itd..... Rozumiecie o co mi chodzi ??

Chciałabym poznać wasza opinię na ten temat. Czy to jest dobra droga, czy może powinnam zabrać się do tego jakoś inaczej ?

0

Warto przemyśleć narysowanie tego, na komponencie czy na BufferedImage. Masz kilka typów obiektów, istotne jest gdzie je narysować, punkt dołączenia krawędzi i etykietki do krawędzi. Korzystanie z managerów rozkładu i tak niewiele da, bo sam musisz decydować co w czym dodać i z jakimi ograniczeniami.
Są też gotowe biblioteki do rysowania grafów, które implementują jakieś algorytmy rozkładu. Warto spojrzeć, może coś będzie przydatne

1 użytkowników online, w tym zalogowanych: 0, gości: 1