如何从jtextpane获取行数

vej*_*tin 7 java swing jtextpane word-wrap

有没有办法从填充文本jtextpane"提取"行数?如果有的话,如果某些行是由文本包装引起的吗?

Rei*_*eus 13

您可以使用它Utilities.getRowStart来确定行的"开始",以便JTextPane为您提供结果lineCount.包裹线条时也可以使用.

int totalCharacters = textPane.getText().length(); 
int lineCount = (totalCharacters == 0) ? 1 : 0;

try {
   int offset = totalCharacters; 
   while (offset > 0) {
      offset = Utilities.getRowStart(textPane, offset) - 1;
      lineCount++;
   }
} catch (BadLocationException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)


Pab*_*ruz 5

如果您定义“行”作为\nJTextPane文本中有多少个字符,则可以使用:

JTextPane p = yourJTextPane;
System.out.println(p.getText().split("\n").length);
Run Code Online (Sandbox Code Playgroud)