请教 这段程序 键盘监听 怎么无效?谢谢

thomson336 2007-12-19 10:19:40
请教 这段程序 键盘监听 怎么无效?谢谢

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.*;

public class TestKeyListener extends Applet implements KeyListener {
int x=20;
public void init() {
addKeyListener(this);
}
public void paint(Graphics g){
//g.drawString("x is "+x,x,40) ;
g.drawString("A",x,40) ;
}

public void keyTyped(KeyEvent e) {
if(e.getKeyChar()=='r'||e.getKeyChar()=='R'){
x += 20;
repaint();
}
}

public void keyReleased( KeyEvent e ) {}
public void keyPressed( KeyEvent e ) {}
}




<applet code=TestKeyListener.class width=400 height=200>
</applet>
...全文
130 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hl4967 2007-12-20
  • 打赏
  • 举报
回复
这段程序没有问题,主要是你没有让当前的光标焦点到你的Applet上,根据JAVA消息的机制,如果不是他的事件源,他是不会被回调消息的处理方法的.
cursor_wang 2007-12-20
  • 打赏
  • 举报
回复
给你个例子看下.

import java.awt.*;
import java.awt.event.*;

public class Sample_11_5_2 extends Frame
implements KeyListener {

String msg = "";
int X = 20, Y = 50;

public Sample_11_5_2() {
addKeyListener(this);
requestFocus(); //请求获得输入焦点
}

//处理键盘按钮按下事件
public void keyPressed(KeyEvent ke) {
//msg="按下按键";
//repaint();
}

//处理键盘按钮松开事件
public void keyReleased(KeyEvent ke) {
//msg+=",松开按键";
//repaint();
}

//处理键盘字符按钮事件
public void keyTyped(KeyEvent ke) {
msg += ke.getKeyChar();
repaint();
}

// 显示记录信息
public void paint(Graphics g) {
g.drawString(msg, X, Y);
}

public static void main(String[] args){
Sample_11_5_2 s=new Sample_11_5_2();
s.setSize(300,100);
s.setVisible(true);
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧