前辈高手们!快快进来!帮帮小辈我答疑解惑一下吧!

qq408515668 2013-05-19 10:27:32
小菜我近日根据书上写了个小代码:
import java.awt.*;
import java.awt.event.*;

public class KeyEvent2 extends Frame{
Button man;

public KeyEvent2(String title){
super(title);
setLayout(null);
this.setSize(200,200);
man=new Button("MAN");
man.setBounds(100,100,40,20);
man.setBackground(Color.BLUE);
man.setForeground(Color.WHITE);
this.add(man);
man.addKeyListener(new KeyHandler());

}
public static void main(String[] args){
KeyEvent2 me=new KeyEvent2("keyMan");
me.setVisible(true);
}


class KeyHandler extends KeyAdapter{
public void keyPressed(KeyEvent e){
String direction=e.getKeyText(e.getKeyCode());
//int direction=e.getKeyCode();

int x=man.getX();
int y=man.getY();
if(direction.equals("Right")) x+=10;
else if(direction.equals("Left")) x-=10;
else if(direction.equals("Down")) y+=10;
else if(direction.equals("Up")) y-=10;
man.setLocation(x,y);


/*if(direction==KeyEvent.VK_RIGHT) x+=10;
else if(direction==KeyEvent.VK_LEFT) x-=10;
else if(direction==KeyEvent.VK_DOWN) y+=10;
else if(direction==KeyEvent.VK_UP) y-=10;
man.setLocation(x,y);*/


}
}
}
以上代码可以编译通过,但是蓝色部分的代码运行完按上下左右键一点没反应都没有。用红色部分的代码却可以。
小弟我把equals里面的字符串大小写都试过了结果都不行,不知道是哪里出问题了,虚心求各位前辈帮帮忙答疑解惑一下
...全文
115 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010741602 2013-05-19
  • 打赏
  • 举报
回复

看上图,按键的名称都是首字母大写,如Left,Right,建议使用KeyCode来判断按了哪个键,
Java飞虎队欢迎各路菜鸟老鸟加入一起交流讨论。群号105098806
qq408515668 2013-05-19
  • 打赏
  • 举报
回复
引用 1 楼 u010741602 的回复:
给你看段KeyEvent的源码,你或许就明白了,若还不懂再追问吧 Java飞虎队欢迎各路菜鸟老鸟加入一起交流讨论。群号105098806
这个上下左右键的Code我都知道,所以蓝色的那段代码可以用,但是String direction=e.getKeyText(e.getKeyCode());不是可以把code的值转换成相应的字符串吗?那我想知道上下左右键code值转换成相应字符串时是什么?如果是“Left”、“Right”等等,那为什么会没反应?
qq408515668 2013-05-19
  • 打赏
  • 举报
回复
[quote=引用 3 楼 u010741602 的回复:] 谢谢大哥的用心回答,小弟在此感激涕零,其实直接打印一下就可以知道我按的键输出来的字符串是什么了,那个上下左右键的code对应的字符串不是“Right”、“Left”、“Down”、"Up"而是“向右箭头”“向左箭头”...坑死我了~~
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

62,614

社区成员

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

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