2011-04-13 19 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

相关问题