我的JTextArea
具有固定尺寸,允许JTextArea
包装线条和单词。
我试图在JTextArea
破坏行之前获得最后一句话。
有办法获得它吗?
我已经尝试使用lineCount()
,getStartOffset()
,getEndOffset()
和getRows()
。我知道我的文字有多长时间,有多少个字符。lineCount
总是return 1
。
我正在考虑更改以获取JTextArea
的可能长度,或者在字符串中找到休息信息,但没有任何方法。
有人有一个想法吗?
这是一些未经测试的代码,可以给您一个想法。
由于您知道文本区域的大小,因此可以使用文本区域的模型/视图方法获取文本。
int width = textArea.getSize().width;
int height = textArea.modelToView(0).height / 2;
int offset = textArea.viewToModel( new Point(width, height) );
int start = Utilities.getPreviousWord( offset ); // or maybe getWordStart(...)?
int end = Utilitities.getWordEnd( start );
String text = textArea.getText(start, end - start);
按空格字符将字符串分开,然后找到数组的最后一个元素。一个简单的例子:
String myString = "foo bar foo bar";
String[] stuff = myString.split(" ");
String last = stuff[stuff.length-1];
"最后"字符串的结果将是" bar"。
编辑:如果您遇到问题,请通过以下方式分开以下评论的链接也应该有用:p>