我试图找出如何从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");
}
}
答案 0 :(得分:0)
您可以使船舶静止。
GET http://mydomain/get-code.php
另外,请遵循Java命名约定。
答案 1 :(得分:0)
在Player
类中创建一个KeyMaster
字段,并通过构造函数将当前播放器注入字段:
private Player player;
KeyMaster(Player player) {
this.player = player;
}
然后在main
方法中,您可以按如下方式创建KeyMaster
:
KeyMaster KeyEvnt = new KeyMaster(Ship);