繁体   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