繁体   English   中英

Java Swing-KeyListener

[英]Java Swing - KeyListener

我怎么知道键入的键何时更改了我的文本? 还是如果键是一个字符?

接口KeyListener包含三种方法:

void keyTyped(KeyEvent)
void keyPressed(KeyEvent)
void keyReleased(KeyEvent)

因此,如果您在KeyEvent对象中获得char,例如:

if ("a".equals(KeyEvent.getKeyChar()))
    System.out.println("It's a letter")

我猜您想知道是否键入一个特定的键实际上会打印一个字符或某些“不可见”的控制字符或其他内容:

在这种情况下,您可以在KeyEvent中检查键入的键,该键会传递到KeyListener的实现方法中:

这个快速的示例应该可以工作,尽管我没有对其进行测试。 它在KeyEvent返回的char上构造一个新的String,然后如果char在String中创建了可读字符,则调用length()方法进行检查。 有点hacky,但我希望你能理解

public void keyReleased(KeyEvent ke){
    if (new String(ke.getKeyChar()).length() == 0){
        // do something important...
    }
}

您可以使用ke.getKeyCode()并检查KeyEvent中的静态字段(VK_F12,VK_ENTER ...)

在这里检查:

http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html

您需要一个文档监听器。 有关更多信息,请参见oracle文档: 如何编写文档监听器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM