java - KeyListener 未在 JApplet 中触发

标签 java swing japplet

当我键入、按下或释放按键时,没有任何反应。我正在尝试使用此关键字添加 key 监听器。当我添加鼠标监听器时,它工作得很好。

class MainApplet extends JApplet implements KeyListener{

MainApplet(){ addKeyListener(this) }

public void init(){}

public void start(){}

public void keyTyped(KeyEvent e) {
    // TODO Auto-generated method stub
    System.out.print(e);

}
public void keyPressed(KeyEvent e) {
    // TODO Auto-generated method stub

}
public void keyReleased(KeyEvent e) {
    // TODO Auto-generated method stub

}

}

最佳答案

KeyEvents 仅为具有焦点的组件生成。小程序上的任何组件都没有焦点,因此没有组件可以接收 KeyEvent。

尝试如下:

Component contentPane = getContentPane();
contentPane.setFocusable(true);
contentPane.addKeyListener( this );

真正的问题是你想做什么?当我们了解真正的需求时,我们可能会提出更好的解决方案。通常您会使用 Key Bindings监听给定组件上的 KeyStroke。

关于java - KeyListener 未在 JApplet 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20694883/

相关文章:

java - 如何用java.Swing移动乒乓 Racket ?

java - 在 Java Applet 中导入图像

Java - 为什么这个小程序的背景没有显示为浅蓝色(青色)?

java - 使用哪种布局?

java - 传递给持久化的分离实体

java - JLabel 的新产品线?

java - 尝试在另一个类(class)中绘制小程序

java - 如何避免使用反射来创建新实例

Java 将 List<Vehicle> 转换为 List<Object>

java - javax.swing.plaf.synth.SynthContext.getPainter 处的 NullPointerException