我需要从具有多行支持的文本组件中获取某些行。所以它要么JTextArea
要么JTextPane
。
如何获得第 1 行、第 2 行或 .. 等?例如line3
从下面的文本中获取
line1
line2
line3
line4
是否可以为某行设置另一个值?例如。设置lineNew
而不是line2
line1
lineNew
line3
line4
有什么办法吗?
要获取 a 中的文本JTextComponent
,请使用getText()
将返回 a 的方法String
。
然后要获取行,将字符串拆分为\n
.
JTextArea txt = new JTextArea("line1\nline2\nline3\nline4");
String s = txt.getText();
String[] lines = s.split("\n");
// now to access the second line, use lines[1]
现在如果要修改文本,可以使用setText(String)
方法。
txt.setText("something else");
您还可以使用其他一些方法来更改文本,例如insert(String,int)
、append(String)
和replaceRange(String,int,int)
。所有这些都记录在javadocs中。
可以JTextArea#replaceRange
用来替换某行。
对于检索某行我不完全确定,但我认为JTextArea#getLineCount
, JTextArea#getLineStartOffset
,JtextArea#getLineEndOffset
应该允许您从文本中快速提取某行。或者正如 tskuzzy 已经建议的那样,检索完整的文本并自己拆分
如何获得第 1 行、第 2 行或 .. 等?
JTextArea
从/ JTextPane
by JTextArea.getText()
/获取文本JTextPane.getText()
。将文本作为字符串后,您可以通过使用换行符作为分隔符拆分文本来获得不同的行。
JTextArea jText = new JTextArea("line1\nline2\nline3\nline4");
String temp = jText.getText();
String[] tempArr = temp.split("\n");
// 获取文本的方法
public String getText(int lineNos){
return Str[lineNos].getText();
}
// 设置文本的方法
public void setText(int lineNos){
Str[lineNos].setText("Hello"); // Can also use Scanner here
}