[...]Unschön ist der Zeilenumbruch mitten im Wort. Eventuell weiß hier jemand einen einfachen Weg der JEditorPane bzw. deren EditorKit das abzugewöhnen.[...]
Ich habe Deinen Code getestet und natürlich hat sich bei mir genau das gleiche Probleme gezeigt. Ich habe dann wie ein Irrer im Internet gesucht und nichts gefunden. Die meisten Leute hatten das Problem anders herum: Die wollten gar keinen Umbruch, sondern dass der Text einfach nach rechts weiter läuft.
Am Ende habe ich mir gar nicht mehr anders zu helfen gewusst, als einmal den Inhalt von buffer in eine HTML Datei zu speichern und diese im Firefox anzuschauen. Das war sehr interessant: Der Text lief einfach bis Ultimo nach rechts weiter. Und dann ist mir ein Licht aufgegangen: Du hattest die tolle Idee per einen Abstand zwischen den Links zu bauen. Problem: Jetzt hängt der ganze Text am Stück. Und so wird der auch von JEditorPane, JTextPane und der Gecko Render Engine von Firefox behandelt. Nämlich am Stück. Kaum macht man die Dinger raus und einfach einen Leerschritt rein, funktioniert alles wunderbar.
Denn Abstand könnte man - sofern man einen größeren haben will - irgendwie über CSS lösen.
Trotzdem danke mal soweit. Damit wäre die Tag Cloud wohl gelöst.
Und bzgl.:
[...]Das ganze geht sicherlich auch objektorientierter und der Missbrauch des HyperlinkEvents eventuell eleganter.[...]
Ich habe Dein Beispiel als Proof-of-Concept genommen. Da ist das eh Wurst.
Sicher kann man jetzt das Ganze noch schön verpacken, eine Tag Klasse basteln, die einen Listener bekommt, der dann von der Tag Cloud über den HyperlinkListener aufgerufen wird. Nicht zu vergessen, dass man noch eine Statistik über die Tags erstellen sollte, um die Gewichtung herauszubekommen.