【问题标题】:How to add keyListener to class that extends Thread如何将 keyListener 添加到扩展 Thread 的类
【发布时间】:2013-09-19 02:04:51
【问题描述】:

线程不包含名为 addKeyListener() 的方法,但有没有办法将 addKeylistener 方法添加到线程?我需要听击键。

public class TypeHelperMain extends Thread implements KeyListener    
    {


        public TypeHelperMain(){

            addKeyListener(this);

        }

【问题讨论】:

  • 恐怕你走错方向了。为什么线程需要关键监听器?
  • 线程在后台运行并拾取击键。
  • @user2708073 你不需要线程来做这个
  • 但是有没有办法用线程做到这一点?
  • @user2708073 明确指出它不是键盘记录器只会让我们更加怀疑。

标签: java eclipse multithreading awt keylistener


【解决方案1】:

如果您尝试在 Swing 应用程序中执行此操作,那么我会推荐这种方法:

KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(
        new KeyEventDispatcher() {
            public boolean dispatchKeyEvent(KeyEvent keyEvent) {
                if(keyEvent.getID() == KeyEvent.KEY_TYPED) {
                    System.out.println("Captured: " + keyEvent.getKeyCode());
                }
                return false; // allowing it to be dispatched further
            }
        });

来源:http://portfolio.planetjon.ca/2011/09/16/java-global-jframe-key-listener/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-26
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    相关资源
    最近更新 更多