我正在用Java创建一个简单的文本编辑器,我正在尝试添加撤消和重做功能。我希望程序能够确定用户是否已停止在文本区域中键入内容,而不仅仅是他们是否已输入字符。程序应该只保存单个字符,如果它是他们键入的唯一内容。你会怎么做呢?
答案 0 :(得分:2)
定义“停止输入”。
基本上,我会考虑使用计时器。获取每个角色事件,添加一个计数器和一个计时器,每次有一个Key Up事件时重启。定义“停止输入”,因为已经过了足够的时间。
然后想想,如果你真的希望这样做,那么这听起来像是一件让我绝对会被火炬和干草叉推向开发者家的事情。
答案 1 :(得分:0)
在主要课程的某个地方;
public static long lastKeyPressTime = 0l;
在KeyListener界面中;
public void keyPressed(KeyEvent evt) {
lastKeyPressTime = System.currentTimeMillis();
}
最后,在适当的,快速运行的线程中;
if((system.currentTimeMillis() - lastKeyPressTime) > 2000) {
//do something, because the user hasnt typed for two seconds
}