Java Swing-KeyListener

Java Swing-KeyListener,java,swing,keylistener,Java,Swing,Keylistener,如何知道键入的键何时更改我的文本?或者如果键是字符?我想你想知道键入某个特定键是否会打印字符,或者是某种“不可见”的控制字符或其他东西: 在这种情况下,您可以检查传递到KeyListener的实现方法中的KeyEvent中的类型化键: 虽然我没有测试这个快速示例,但它应该可以工作。它在KeyEvent返回的字符上构造一个新字符串,然后如果该字符在字符串中创建了可读字符,则调用length()方法来chekc。有点老套,但我希望你能理解要点 public void keyReleased(KeyE

如何知道键入的键何时更改我的文本?或者如果键是字符?

我想你想知道键入某个特定键是否会打印字符,或者是某种“不可见”的控制字符或其他东西:

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

虽然我没有测试这个快速示例,但它应该可以工作。它在KeyEvent返回的字符上构造一个新字符串,然后如果该字符在字符串中创建了可读字符,则调用length()方法来chekc。有点老套,但我希望你能理解要点

public void keyReleased(KeyEvent ke){
    if (new String(ke.getKeyChar()).length() == 0){
        // do something important...
    }
}
或者,您可以使用
ke.getKeyCode()
并检查KeyEvent中的静态字段(VK_F12,VK_ENTER…)

请点击此处:


我想你想知道键入特定的键是打印字符还是某种“不可见”的控制字符或其他东西:

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

虽然我没有测试这个快速示例,但它应该可以工作。它在KeyEvent返回的字符上构造一个新字符串,然后如果该字符在字符串中创建了可读字符,则调用length()方法来chekc。有点老套,但我希望你能理解要点

public void keyReleased(KeyEvent ke){
    if (new String(ke.getKeyChar()).length() == 0){
        // do something important...
    }
}
或者,您可以使用
ke.getKeyCode()
并检查KeyEvent中的静态字段(VK_F12,VK_ENTER…)

请点击此处:


界面KeyListener包含三种方法:

无效键类型(键事件)
按下无效键(按键事件)
无效密钥释放(密钥事件)

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

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

界面KeyListener包含三种方法:

无效键类型(键事件)
按下无效键(按键事件)
无效密钥释放(密钥事件)

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

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

您需要一个文档侦听器。有关详细信息,请参阅oracle文档:

您需要一个文档侦听器。有关更多信息,请参阅oracle文档:

什么文本?是否在文本字段、文本区域等中?你在听什么?你只关心按键是否在文本区域,还是只关心按键不在文本区域?更多地了解一下你在听按键时想要完成的事情也会有所帮助。什么文本?是否在文本字段、文本区域等中?你在听什么?你只关心按键是否在文本区域,还是只关心按键不在文本区域?再多了解一下你在听按键时想要完成的事情也会有帮助。它不起作用!:(当我在退格后创建字符串时,值是“\b”,意思是长度等于1。读取javadoc生成getKeyCode()==KeyEvent.VK_UNDEFINED应该可以工作…它不工作!:(当我在退格后创建字符串时,值是“\b”,意思是长度等于1。读取javadoc生成getKeyCode())==KeyEvent.VK_未定义的应该可以工作。。。