[英]Applet - KeyListener not working
當我啟動我的applet時,我得不到關鍵監聽器的響應。 我該如何解決? 下面是代碼。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Timer;
import java.util.TimerTask;
public class Main extends Applet {
private static final long serialVersionUID = 1L;
public String mode = "";
public Graphic gr;
public void init() {
this.setSize(400, 400);
gr = new Graphic();
this.add(gr);
gr.addKeyListener(new MyKeyListener());
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
gr.requestFocus();
gr.repaint();
}
};
new Timer().scheduleAtFixedRate(timerTask, 0, 1000 / 5);
}
public void paint(Graphics g) {
}
private class MyKeyListener extends KeyAdapter {
public MyKeyListener(){
System.out.println("HELLO");
}
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_UP:
gr.direction = Graphic.Direction.up;
gr.move();
break;
case KeyEvent.VK_DOWN:
gr.direction = Graphic.Direction.down;
gr.move();
break;
case KeyEvent.VK_LEFT:
gr.direction = Graphic.Direction.left;
gr.move();
break;
case KeyEvent.VK_RIGHT:
gr.direction = Graphic.Direction.right;
gr.move();
break;
}
}
public void keyReleased(KeyEvent e) {
}
}
}
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Shape;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class TTest extends Applet{
@Override
public void init() {
// TODO Auto-generated method stub
super.init();
this.setSize(400, 400);
addKeyListener(new KeyListener());
}
class KeyListener extends KeyAdapter{
public KeyListener(){
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
super.keyPressed(e);
switch(e.getKeyCode()){
case KeyEvent.VK_UP:
System.out.println("Pressed up arrow!");
break;
case KeyEvent.VK_DOWN:
System.out.println("Pressed down arrow!");
break;
default:
System.out.println("You pressed: " + e.getKeyCode());
}
}
}
}
您必須將關鍵事件偵聽器添加到applet本身而不是圖形對象。 但是,我認為將鼠標事件監聽器添加到除applet之外的對象是可以的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.