获取JTextArea中的最后一个输入字符

时间:2015-05-03 19:06:20

标签: java swing jtextarea

我希望不断跟踪JTextArea中输入的内容,因此每次用户输入内容时,我都希望在JTextArea中获取最后一个输入字符。

我能够提出整个工作计划。然而,我得到最后一个输入字符的方式是:

textArea.getText().charAt(textArea.getText().length()-1);

这样,我总是首先从JTextArea获取整个文本字符串。

我的问题是:有没有更好的方法让我在没有首先从JTextArea获取整个文本的情况下获取最后一个输入字符?

2 个答案:

答案 0 :(得分:2)

您可以查询JTextArea的任意部分:

Document doc = textArea.getDocument();
String lastCharAsString = doc.getText(doc.getLength() - 1, 1);

如果您甚至关心每次创建一个单字符String,这可能是另一个甚至不创建String实例的解决方案:

Segment seg = new Segment(); // can be reused
Document doc = textArea.getDocument();
doc.getText(doc.getLength() - 1, 1, seg);
char last = seg.last(); // equal to seg.first()

答案 1 :(得分:1)

如何使用DocumentListener? http://docs.oracle.com/javase/tutorial/uiswing/components/generaltext.html#doclisteners JTextArea的基础对象是Document。 因此,您可以捕获所需的更新事件,获取最后一个输入字符和 将其存储在变量中。 假设这就是你要找的东西。