簡體   English   中英

如何在Java中創建一個空的KeyEvent和SetKeyCode(keyCode)?

[英]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.

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