有没有计算一个字符串是如何分成行中的JTextArea一种可靠的方式?
我有一个固定宽度的一个JTextArea,当它被填满,添加新行,并将其纵向伸长。
现在,我需要究竟哪些字符是该行中知道的。 我可以添加了使用字体度量单个字符的宽度,但我不知道这是否是可靠的,或有可能是更好的方法。
是字体度量“绝招”的唯一途径?
有没有计算一个字符串是如何分成行中的JTextArea一种可靠的方式?
我有一个固定宽度的一个JTextArea,当它被填满,添加新行,并将其纵向伸长。
现在,我需要究竟哪些字符是该行中知道的。 我可以添加了使用字体度量单个字符的宽度,但我不知道这是否是可靠的,或有可能是更好的方法。
是字体度量“绝招”的唯一途径?
所有的JTextComponent ■找modelToView(...)
和viewToModel(...)
的方法,可以帮助,但或许更重要的是在方法javax.swing.text.Utilities类包括getRowStart(...)
和getRowEnd(...)
modelToView的可能不利于OP,因为它是从像素坐标开始。 getRowStart只是间接地有用,因为它偏离开始,而不是行索引,并返回一个偏移量。 这将是最有用这里的功能是JTextArea.getLineStartOffset(行号),它返回偏移从-启动的文本在特定线路的开始,以及反向JTextArea.getLineOfOffset(偏移)。 (希望这个答案早在这里,当我今天早些时候此页面上无意中发现了类似的问题:-))