Ich hab leider ein kleines Problem für das ich im Internet keine Lösung gefunden habe! (Mag auch sein das ich den richtigen Suchbegriff nicht gefunden habe )
Ich versuche es mal zu beschreiben:
Also ich habe einen JTree. Dieser wird im Verlauf der Benutzung vom User erweitert. Dies geht solange gut bis die letzten Element in dem unsichtbaren Teil meines JScrollpanes verschwinden.
Für die Benutzbarkeit ist es allerdings wichtig immer alle Element des Tree’s im Blick zu haben(Es bleiben bereits alle Nodes automatisch expanded).
Meine Idee war also das der Tree wenn er auf der X-Achse keinen Platz mehr hat praktisch eine neue Spalte aufmacht und darin weitergeführt wird!
Nur wie ich das anstelle ist mir ein Rätsel… :eek:
jo, JScrollPane(-Bar) sollte sich nach links ziehen lassen, setze zuvor die preferredSize, sage nicht einfach, ne ist nicht, ist halt bald weihnachten. Grüßle.
Das ist meines Wissens nach nicht vorgesehen, und wäre mit erheblichen Programmieraufwand verbunden. Deine Lösung ist auch ziemlich ungewöhnlich, normalerweise versucht man eher, den aktuellen Knoten wieder ins Bild zu scrollen (selbst wenn dann Papa-Knoten dadurch verschwinden).
Na wenn der Platz immer noch nicht reicht, soll das von der horizontalen Scrollbar kompensiert werden!
Ist aber im Kontext des Programmes unwahrscheinlich…
Gibt es vielleicht eine JTree ähnliche Klasse die diese Funktionalität besitzt oder kennt ihr irgendwelche libaries oder private Klassen oder Projekte?
Mir viele da nur selber schreiben ein… aber das duerfte ziemlich komplex werden. Kannst dir ja mal den code von jtree anschauen, und mal ueberlegen was man da aendern koennte… vielleicht gibt es auch soetwas wie einen jtreelayoutmanager, evtl koennte man da etwas basteln…
Naja, du müsstest den JTree in der 1. Spalte “abschneiden” (ab einem gewissen Punkt keine Knoten mehr anzeigen) und in der 2. Spalte einen neuen JTree anzeigen, der da beginnt, wo der alte Aufhört.
Aber: Wenn die Knoten eh immer aufgeklappt sind, ist es vielleicht einfacher statt einem JTree eine JList zu nehmen, in der die Elemente nur entsprechend eingerückt sind!? Ich weiß jetzt nicht wie komplex dein Baum ist, aber vielleicht ist das eine Idee!?
[QUOTE=Natac]
Aber: Wenn die Knoten eh immer aufgeklappt sind, ist es vielleicht einfacher statt einem JTree eine JList zu nehmen, in der die Elemente nur entsprechend eingerückt sind!? Ich weiß jetzt nicht wie komplex dein Baum ist, aber vielleicht ist das eine Idee!?[/QUOTE]
Das ist ne sehr gute Idee glaube ich Danke!
Aber wie schneide ich den dann die JList ab und führe sie in der neuen Spalte weiter??
Naja kommt drauf an wie dein Baum aussieht, wieviele Ebenen, ob er sich verändert, neue Elemente dazukommne usw. GridLayout ist ein Gitter, du kannst dir Panels/Labels machen, die je einen Eintrag in deinem Baum darstellen und sie in diesem Gitter anordnen. Ich hab grad was im Kopf, vielleicht hacke ich da noch was zusammen.
Ich hab mir noch einen Hover und Click Listener reingeschrieben und benutze es jetzt im Programm! Hat tatsächlich noch einige andere Dinge einfacher gemacht!!
Falls du noch Interesse dran hast, ich habs jetzt auch so hingekriegt dass es sich wie ein JTree verhält. Aber da wäre ein HoverListener schon wieder schwerer einzubauen.