java里的JTextArea对象怎样返回指定行的字符串?

2024-12-18 00:12:04
推荐回答(2个)
回答1:

不知道有这样的方法.给你说一下我的思路:
把返回的字符串进行处理,对回车\n进行判断来截取字符串.然后看你想要哪个再取出来就行了.

public static String getRowText(int row,String text){
String string="";
String regex = "\n";
Pattern p =Pattern.compile(regex);
String[] r = p.split(text);
if(!((r[row-1].trim()).equals(""))){
string = r[row-1];
}

return string;
}
这是我刚按照你的要求写的方法,调用的时候要把行数,JTEXTAREA中的字符串.
首先引入类包 import java.util.regex.Pattern;

回答2:

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.text.BadLocationException;

public class TextAreaGetLine{
public static void main(String[] args) throws BadLocationException {
JTextArea area = new JTextArea("line1\nline2\nline3");
int from = area.getLineStartOffset(2-1);
int to = area.getLineEndOffset(2-1);
System.out.println(area.getText(from, to-from));
}
}