作为Java项目的一部分,我正在整理一个简单的游戏。我正在使用DrawingPanel窗口,并且需要能够将当前的键盘键作为字符按下。具体来说,我有DrawingPanel类和一个游戏类,并且需要从游戏类的公共static void main内部获取char变量。
我注意到DrawingPanel包含KeyListener方法,特别是onKeyDown,但是我不知道如何使用它。这是一个void方法,所以我不知道如何将按键作为输出,也不知道DPKeyEventHandler输入的用途。
答案 0 :(得分:0)
我认为,通过阅读有关Java中的KeyListener的文章,您将能够做您想做的事。
要让您开始学习,请看以下代码及其行为:
import java.awt.BorderLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class KeyEventClass extends JFrame implements KeyListener {
public KeyEventClass(){
this.setLayout(new BorderLayout());
JTextField field = new JTextField();
field.addKeyListener(this);
this.add(field, BorderLayout.CENTER);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public void keyTyped(KeyEvent e) {
System.out.println("KeyTyped: ");
if(e.getKeyChar() == KeyEvent.CHAR_UNDEFINED){
System.out.println("No Unicode-Character typed!");
}else{
System.out.println(e.getKeyChar() + " typed!");
}
System.out.println("---");
}
public void keyPressed(KeyEvent e) {
System.out.println("Key: " + e.getKeyChar() + ", Code: " + e.getKeyCode());
System.out.println("Key-Location: " + e.getKeyLocation());
System.out.println("---");
}
public void keyReleased(KeyEvent e) {
System.out.println("KeyReleased: ");
if(e.getKeyCode() == KeyEvent.VK_SPACE){
System.out.println("ABORT!");
System.exit(0);
}
System.out.println("Key: " + e.getKeyChar() + ", Code: " + e.getKeyCode());
System.out.println("---");
}
public static void main(String[] args) {
new KeyEventClass();
}
}
有关它的更多信息:
https://examples.javacodegeeks.com/desktop-java/awt/event/a-complete-keylistener-example/