簡體   English   中英

Java AWT KeyListener不起作用

[英]Java AWT KeyListener not working

我一直在玩Java,並添加了KeyListener。 當我鍵入一個鍵時,它會顯示“ 0”,並且我希望它顯示鍵代碼。

Key.java

import java.awt.event.*;

public class Key implements KeyListener {
public void keyPressed(KeyEvent e) {

}

public void keyReleased(KeyEvent e) {

}

public void keyTyped(KeyEvent e) {
    System.out.println("TYPED: " + Integer.toString(e.getKeyCode()));
}
}

Main.java

public void init() {
    addKeyListener(new Key());
    addMouseListener(new Mouse());

    this.setBackground(new Color(100, 100, 255));
    this.setSize(screen);
}

感謝您的所有幫助!

只需閱讀文檔:

void keyTyped(KeyEvent e)

鍵入鍵后調用。 有關鍵類型事件的定義,請參見KeyEvent的類描述。

因此,通過描述:

public int getKeyCode()

返回與此事件中的鍵關聯的整數keyCode。 返回:鍵盤上實際鍵的整數代碼。 對於KEY_TYPED事件,keyCode為VK_UNDEFINED 。)

常量VK_UNDEFINED為:

public static final int VK_UNDEFINED = 0;

所以這完全正常,您只會得到0。

您應該使用:

public void keyTyped(KeyEvent e) {
    System.out.println("TYPED: " + e.getKeyChar());
}

這是使用這三種方法的示例

對於KEY_TYPED事件,鍵碼未定義。 檢查Java文檔: http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html#getKeyCode() : http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html#getKeyCode()

使用getKeyChar()代替。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM