2012-10-29 37 views
3

有没有可靠的方法来计算如何将字符串分成JTextArea中的行?JTextArea中的行

我有一个固定宽度的JTextArea,当它被填充时,会添加一个新行并且它会垂直展开。

现在,我需要知道哪些字符在哪一行。我可以使用字体指标来合计单个字符宽度,但我不知道这是否可靠,或者是否有更好的方法。

字体指标是否是唯一的方法?

+2

这可能不是“正好”正确的方法,但你可以看看[换行符]( http://docs.oracle.com/javase/tutorial/2d/text/drawmulstring.html)API – MadProgrammer

+0

你可以看看我对这个问题的回答(http://stackoverflow.com/questions/13165617/如何到确定 - 这线-是可见的功能于可滚动的JTextArea/13168327#13168327)。它详细介绍了如何计算JTextArea的每行内容。 –

回答

0

modelToView的可能不利于OP,因为它是从像素坐标开始。 getRowStart只是间接有用的,因为它从偏移量开始,而不是从行索引开始,并返回一个偏移量。这里最有用的函数是JTextArea.getLineStartOffset(lineNumber),它返回特定行开头的文本开始位置的偏移量,以及相反的JTextArea.getLineOfOffset(offset)。 (希望这个答案已经在这里,当我偶然发现了一个类似的问题,今天早些时候:-))