2011-04-13 56 views
0

我爲JEditorPane實現了DocumentListener(需要有關insertUpdate(DocumentEvent e)方法的幫助)。如何讀取最後一個單詞或最後一行(行由'\ n'分隔,單詞由''分隔)?如何讀取DocumenListener中的最後一個字或最後一行

+0

我不確定你爲什麼使用JEditorPane。 JEdi​​torPanes用於顯示HTML。 HTML不使用行的概念。您只需添加文本,HTML將在適當時包裝文本。如果你想強制一個新行,那麼你使用
標籤。我認爲你應該使用JTextArea或JTextPane來處理常規文本。 – camickr 2011-04-13 15:35:01

回答

2

爲了讓您的JEditorPane中的最後一行,拆分編輯器中的文本上\n,如下圖所示:

String text = editor.getText(); 
String[] lines = text.split("\n"); 
String lastLine = lines[lines.length-1]; 
System.out.println("Last line: " + lastLine); 

同樣,拿到最後一個字,分爲上空間的最後一行。

+0

不是一個非常有效的解決方案,特別是對於大型文件。您應該利用Docuement結構,因爲文本已經被解析爲行。 – camickr 2011-04-13 15:27:24

3

實用程序類可以與格式化內容一起使用,例如, html

public static final int getWordStart(JTextComponent c, int offs) throws BadLocationException 
public static final int getWordEnd(JTextComponent c, int offs) throws BadLocationException 
+0

+1,更好的解決方案,可用於任何大小的文件。所有你需要知道的是document.getLength(),你可以得到最後一個單詞的偏移量。然後你使用document.getText(...)方法來獲取這個單詞。如果你想要最後一行,你可以使用getLineStart/End方法來獲得偏移量。 – camickr 2011-04-13 15:31:57

相關問題