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