【发布时间】:2016-01-28 21:15:24
【问题描述】:
我试图弄清楚如何从 keylistener 类更改在我的主类中创建的对象的字段。我创建了一个名为 KeyMaster 的类,它所做的只是通过在主类中创建的事件队列来监听键盘输入。当我向上、向左、向下、向右推时,我希望能够通过 KeyMaster 类更改 x 和 y 坐标。问题是我无法从 KeyListener 类访问 Ship 对象。请帮忙。 :)
public class TheMage extends JFrame
{
public static void main(String[] args)
{
TheMage Main = new TheMage();
Player Ship = new Player(50,50);
KeyMaster KeyEvnt = new KeyMaster();
EventQueue.invokeLater
(new Runnable()
{
@Override
public void run()
{
Main.addKeyListener(KeyEvnt);
Main.setFocusable(true);
Main.setVisible(true);
}
}
);
}
}
public class Player {
int x;
int y;
public Player(int x, int y) {
this.x = x;
this.y = y;
}
}
public class KeyMaster implements KeyListener {
public KeyMaster() {
}
@Override
public void keyTyped(KeyEvent ke) {
System.out.println("Hello - Type");
}
@Override
public void keyPressed(KeyEvent ke) {
System.out.println("Hello - Press");
}
@Override
public void keyReleased(KeyEvent ke) {
System.out.println("Hello - Rel");
}
}
【问题讨论】:
-
请遵循 Java 命名约定,oracle.com/technetwork/java/codeconventions-135099.html。
标签: java keylistener keyevent