आप KeyListener
लागू करने के लिए, एक नज़र यहाँ ले से KeyEvent
एस सुनो।
import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;
public class IsKeyPressed {
private static volatile boolean wPressed = false;
public static boolean isWPressed() {
synchronized (IsKeyPressed.class) {
return wPressed;
}
}
public static void main(String[] args) {
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(KeyEvent ke) {
synchronized (IsKeyPressed.class) {
switch (ke.getID()) {
case KeyEvent.KEY_PRESSED:
if (ke.getKeyCode() == KeyEvent.VK_W) {
wPressed = true;
}
break;
case KeyEvent.KEY_RELEASED:
if (ke.getKeyCode() == KeyEvent.VK_W) {
wPressed = false;
}
break;
}
return false;
}
}
});
}
}
तो फिर तुम हमेशा उपयोग कर सकते हैं:
if (IsKeyPressed.isWPressed()) {
// do your thing.
}
आप कर सकते हैं, के सही तरीके से अपने लक्ष्य को प्राप्त करने के लिए एक KeyEventDispatcher
रजिस्टर, और इसे लागू इच्छित कुंजी की स्थिति बनाए रखने के लिए करने के लिए है पाठ्यक्रम, isPressing("<some key>")
को कुंजियों के मानचित्र और उनके राज्य को IsKeyPressed
के अंदर लपेटने के लिए लागू करने के लिए एक ही विधि का उपयोग करें।
स्रोत
2013-08-03 21:44:40
संभावित डुप्लिकेट http://stackoverflow.com/questions/616924/how-to-check-if-the-key-pressed-was-an-arrow- कुंजी-इन-जावा-कीलिस्टर – woofmeow
जावा में, लेकिन एक विशेष जीयूआई ढांचे का उपयोग (स्विंग?)? – mael