什么是java awt键盘输入的首选方式

时间:2013-10-30 01:31:00

标签: java awt keyboard-input

我在互联网上看到了许多相互矛盾的建议,包括如何使用awt和swing来处理输入,有几个人已经处理了我的代码和它的混乱。

选项

  • 实现KeyListener或扩展KeyAdapter
  • ^到应用程序的主类,使用匿名类,使用私有类或使用外部输入管理类。
  • 将事件对象发送到需要知道输入的每个对象,发送按下的数组数组,或者使每个类成为监听器并将其添加到主类。

所以我可以

public class Board extends JPanel implements KeyListener{
    public Board(){addKeyListener(this);}}

public Board(){addKeyListener( new KeyListener(){...});}

public class Board extends JPanel {
    private class PrivateListener implements KeyListener{...} 
    public Board(){addKeyListener(new PrivateListener());

public class PublicListener implements KeyAdapter{...}
public class Board extends JPanel {
    public Board(){addKeyListener(new PublicListener());

addKeyListener(this);
addKeyListener(obj1);
addKeyListener(obj2);

implements KeyListener可以替换为extends KeyAdapter,但我不会这样做,因为java只允许一个父类。

然后我不知道这是如何进入我的代码的

private boolean [] keys = new boolean[256];
public void keyPressed(KeyEvent e) {keys[e.getKeyCode()] = true;}
public void keyReleased(KeyEvent e) {keys[e.getKeyCode()] = false;}
public boolean isKeyDown(int k) {return keys[k];}

public void keyPressed(KeyEvent e) {
    obj1.keyPressed(e);
    obj2.keyPressed(e);
}

真的,awt键盘输入的最佳实现是什么?

0 个答案:

没有答案