Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按键按住事件_Java_Swing - Fatal编程技术网

Java 按键按住事件

Java 按键按住事件,java,swing,Java,Swing,我有这个游戏,shooter(通过数据报套接字连接的两人游戏),它有一艘飞船 我有一个油漆组件来油漆这艘船 向上和向下键,用于移动p2 w和s键用于移动p1 按下向上键时: public void keyPressed( KeyEvent e ){ switch( e.getKeyCode() ){ case KeyEvent.VK_UP: sendData("up start"); break; my(ex.)主机执行sendData(“启动”),将所述字符串发送到

我有这个游戏,shooter(通过数据报套接字连接的两人游戏),它有一艘飞船

我有一个油漆组件来油漆这艘船

向上向下键,用于移动p2

ws键用于移动p1

按下向上键时:

public void keyPressed( KeyEvent e ){
    switch( e.getKeyCode() ){

        case KeyEvent.VK_UP: sendData("up start"); break;
my(ex.)主机执行
sendData(“启动”)
,将所述字符串发送到客户端,当客户端接收到该字符串时,它执行
shoot.p1.moveUP()将另一个客户端上的p1向上移动1像素。

当我移动p2ship on(例如host按一次向上键)时,客户端上的p2 ship移动了1个像素

(是的,每次我按下主机上的向上按钮,客户端p2都会移动1个像素)

但是,当我按住键(按住向上键)时,即使主机上绘制的飞船一直在移动,它仍然只移动1个像素

在按住钥匙时,如何执行
sendData(“启动”)
?我认为,
keyPressed
只执行一次,而不像在
paintComponent
中,只要按下键即可执行


我希望在不使用任何外部库的情况下解决此问题。。谢谢:)

LWJGL有一个你可以使用的键盘类

import org.lwjgl.input.Keyboard


您可以使用方法
Keyboard.isKeyDown(Keyboard.KEY\u UP)
获取按钮的状态,然后调用发送数据、更新游戏状态等的方法。

此问题与绘画或数据报无关。这只是一个关键的听众问题。如果不使用lwjgl,没有其他方法可以解决这个问题吗?