我有一个JTextArea
,其大小固定,允许JTextArea
包裹行和单词。
我试图在JTextArea
突破线之前得到最后一个字。
有办法搞定吗?
我已尝试使用lineCount()
,getStartOffset()
,getEndOffset()
和getRows()
。我知道我的文字有多长,它有多少个字符。 lineCount
总是return 1
。
我正在考虑进行更改以获取JTextArea
的可能字符长度,或者查找字符串中的中断信息,但是没有方法。
有没有人有想法得到它?
答案 0 :(得分:0)
按空格字符拆分字符串,然后找到数组的最后一个元素。一个简单的例子:
String myString = "foo bar foo bar";
String[] stuff = myString.split(" ");
String last = stuff[stuff.length-1];
" last"的结果字符串将是" bar"。
修改:如果您在查找要分割的断点字符时出现问题,则以下评论中提供的链接也会有所帮助:How to get line-wrapped text from JTextArea into multiple line-seperated Strings
答案 1 :(得分:0)
这是一些未经测试的代码,可以给你一个想法。
由于你知道文本区域的大小,你可以使用文本区域的模型/视图方法来获取文本。
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);