Hi Leute,
kurze beschreibung meines Problems:
Ich möchte gern eine JTextPane benutzen. In diesem JTextPane soll der Text am hinteren Ende umgebrochen werden. Folgendes funktioniert:
setContentPane(new JScrollPane(new JTextPane()));
doch das reicht mir leider nicht, denn mein JTextPane soll noch Zeilennummern bekommen. Also stecke ich mein JTextPane mit einer selbst geschriebenen Zeilen-nummerierungsklasse (abgeleitet von JComponent) in ein JPanel mit einem BorderLayout. Dieses JPanel kommt dann in den JScrollPane. folgendermaßen:
JPanel main = new JPanel();
main.setLayout(new BorderLayout());
main.add(new MyZeilenNummern(), BorderLayout.WEST);
main.add(new JTextPane(), BorderLayout.CENTER);
setContentPane(new JScrollPane(main));
Das ergebnis ist, dass nun nicht mehr am Ende des JTextPane umgebrochen wird sondern das JTextPane Feld immer weiter vergrössert wird…
Ich hab schon nach Lösungen gesucht, aber finde eigentlich nix im Bezug auf mein Problem. Ich weiss nun schon, dass es wohl etwas mit dem preferredSize zu tun haben muss. Ich hab nun mittlereile schon einen ComponentListener an mein JTextPane angemeldet, der mir bei jeder Veränderung ein
setPreferredSize(getMinimumSize())
macht. Das funktioniert auch ‚fast‘. Aber ich finde das irgendwie ungeschickt.
Kennt jemand eine bessere Lösung?
mfg,
Martin Fernau