[英]How to create an empty KeyEvent and SetKeyCode(keyCode) in Java?
在我的項目中,我試圖從另一台計算機接收到readInt()
的dataInputStream
,該數據發送writeInt(e.getKeyCode())
到這台計算機,但是當我收到keyCode
,如何將其放入KeyEvent
對象中?
這是我的編碼的一部分:
KeyEvent enemyKey;
try{
key = inputFromClient.readInt();
if(key!=0) {
enemyKey.setKeyCode(key);
player2.keyPressed(enemyKey);
}
}catch(Exception ex){
System.out.println(ex);
}
通過執行上面的代碼,我得到NullPointerException,因為KeyEvent
敵人鍵為null
。 我該怎么做才能解決這個問題?
您尚未初始化KeyEvent enemyKey;
您可以使用此構造函數對其進行初始化
public KeyEvent(Component source,
int id,
long when,
int modifiers,
int keyCode,
char keyChar)
source -發起事件的組件
id-一個整數,指示事件的類型。 有關允許值的信息,請參見KeyEvent的類描述。
when-一個長整數,指定事件發生的時間。 不建議傳遞負值或零值
修飾符 -修飾符在事件(Shift,Ctrl,Alt,Meta)期間按下。 不建議傳遞負值。 零值表示未傳遞任何修飾符。 使用擴展的_DOWN_MASK或舊的_MASK修飾符,但是不要在一個事件中混合使用模型。 首選使用擴展修飾符
鍵代碼 -對於實際密鑰的整數代碼,或VK_UNDEFINED(為一個鍵類型的事件)
keyChar-此事件或CHAR_UNDEFINED生成的Unicode字符(用於未映射到有效Unicode字符的鍵按下和鍵釋放的事件)
有關可以傳遞給構造函數的值的更多信息,請參見KeyEvent javadoc
另外,看看Javabeans
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.