繁体   English   中英

你如何使用keylistener?

[英]How do you use a keylistener?

似乎我无法让我的程序注意到我正在按下按钮的事实。 我看过很多教程和图片,我认为这段代码应该可以工作,但它不会。 有谁能够帮我?

 package projekt;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;

public class Projekt extends javax.swing.JFrame implements KeyListener {


public Projekt() {
    initComponents();
    this.addKeyListener(this);
}

 [...]

@SuppressWarnings("unchecked")

@Override
public void keyPressed(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_A){
        System.out.println("It works!!!"); //It won't print this
}


@Override
public void keyTyped(KeyEvent e) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

@Override
public void keyReleased(KeyEvent e) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

KeyEvent 仅调度到具有焦点的组件。

this.addKeyListener(this);

您正在将 KeyListener 添加到框架中。 框架没有焦点。 显示在框架上的组件具有焦点。

我似乎无法让我的程序了解我正在按下按钮的事实。

您不应该使用 KeyListener 来监听特定的键事件。 那是旧的 AWT 代码。

在 Swing 你应该使用Key Bindings 即使组件没有焦点, Key Bindings也允许您侦听 KeyStroke。

阅读 Swing 教程中有关如何使用键绑定的部分以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM