是否有一種方法可以從填充的文本jtextpane中「提取」行數? 如果存在,如果某些行是由於文字換行造成的,它會起作用嗎?如何從jtextpane獲取行數
4
A
回答
11
您可以使用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();
}
4
如果定義了一個「行」有多少\n
字符JTextPane中文字都在那裏,那麼你可以使用:
JTextPane p = yourJTextPane;
System.out.println(p.getText().split("\n").length);
+0
謝謝,儘管我已經試過了。問題是,當jtextPane包裝一行時,它似乎沒有放置「\ n」?我無法真正理解爲什麼。 – vejmartin
+0
不,它沒有。如果這就是你需要的,你不能使用我的答案。 –
0
要跳轉到行選擇的是,我用這個代碼:
int rowSel = Integer.parseInt(tfGoLine.getText());
int rowGo = 0;
int lineCount = 0;
int totalCharacters = rowSel <= 1 ? 0 : text.getText().length();
try {
int last = -1;
for (int count = 0; count < totalCharacters; count++) {
int offset = Utilities.getRowStart(text, count);
if (last != offset) {
last = offset;
lineCount++;
rowGo = offset;
if (lineCount == rowSel) {
break;
}
}
}
} catch (BadLocationException e) {
}
text.getCaret().setDot(rowGo);
text.requestFocus();
相關問題
- 1. 如何獲得JTextPane行數
- 2. 如何從JTextPane中獲取選擇
- 3. 如何獲取我的JTextPane的內容?
- 4. 從JTextPane獲取原始文本
- 5. 如何從.bat進程獲取輸出以顯示在JTextPane中?
- 6. JTextPane - 獲取組件值
- 7. 如何從sqlite數據庫獲取行?
- 8. Zend_Db:如何從表中獲取行數?
- 9. 如何從OdbcDataReader獲取行數?
- 10. 如何從resultResult獲取行數?
- 11. 如何從這一行獲取數組?
- 12. 如何從PDO Prepare Statement獲取行數?
- 13. 從JTextPane中的任何偏移量獲取樣式
- 14. 如何從indexPathsForSelectedRows獲取「行」?
- 15. 如何獲取從循環中獲取的總行數?
- 16. 檢測JTextPane中的行數
- 17. 如何獲取行數?
- 18. 如何獲取JTextPane中輸入文本的高度?
- 19. 如何獲取JTextPane中選定文本的樣式?
- 20. Java - 如何獲取JTextPane的默認字體大小
- 21. 如何在jtextpane中獲取特定位置的前景色
- 22. 如何使用JTextPane的所有屬性獲取內容?
- 23. 獲取段落樣式中的JTextPane
- 24. 獲取JTextPane內容的高度
- 25. 未在JTextPane中獲取滾動條
- 26. 多行JTextPane
- 27. JTextPane - 獲取顯示行的起始位置
- 28. 如何強制JTextPane不去下一行?
- 29. 如何從JTextPane中刪除組件
- 30. 如何從JTextPane中刪除圖片?
只是一個註釋:「這也將工作時線包裹。」意味着如果一條線自動換行,結果數將增加換行量。所以,當你例如。想要顯示行號,你必須檢查一行確實是一行還是因爲自動換行而顯示爲一行。 – Bowi