Rows in JTextArea

java, jtextarea, row, swing

Solution

All JTextComponents have `modelToView(...)` and `viewToModel(...)` methods that can help, but perhaps even better are the methods in the javax.swing.text.Utilities class including `getRowStart(...)` and `getRowEnd(...)`

Problem

Is there a reliable way to calculate how is a string divided into rows in JTextArea? I have a JTextArea with fixed width and when it gets filled, a new row is added and it expands vertically. Now, I need to know exactly which characters are in which row. I could add up single character widths using font metrics, but I don't know if that is reliable, or if there may be a better method. Is the font metrics "trick" the only way?

Original source

Related problems