重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个是F10的问题,你可以将F10换成其他按键,因为F10是快捷键,那个final的问题是因为你所用的方法是个内部类,必须用final的变量
目前成都创新互联已为上千家的企业提供了网站建设、域名、网站空间、绵阳服务器托管、企业网站设计、曲靖网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
操作系统,有两个层次,第一个层次是对组装起电脑的各个硬件的驱动程序;第二个是建立在驱动程序上的各项应用程序,比如桌面显示、键盘监听后的处理程序等等。如果想要进行监听键盘,那么就需要获取到所使用操作系统给出的api接口,以windows系统为例,是用c和c++进行编写的,所以他们提供的api都是c和c++的api接口。于是用java的话就需要用到java的native方法,一个Native Method就是一个java调用非java代码的接口。所以3个步骤:
1、引用java native方法。
2、研究windows api。
3、调用windows api中的键盘监听接口,完成程序。
哦哟,测试了好多次,终于找到原因咯,frame.addKeyListener(this); 有问题!
键盘事件监听器不能挂在frame上的,你只需要把这句话改为tf.addKeyListener(this); 就能执行咯,幸苦了这么久,亲要记得采纳哦
package com;
import java.util.Scanner;
public class test {
/**
* @param args
*/
private Scanner san = new Scanner(System.in);
public String getInput() {
String input;
input = san.nextLine().trim();
return input;
}
public static void main(String[] args) {
test at = new test();
for (int i = 0; i 10; i++) {
System.out.print("请输入: ");
String name = at.getInput();
System.out.println(name);
}
}
}
this.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_RIGHT)
by = by+5;
else if(e.getKeyCode()==KeyEvent.VK_LEFT)
by = by-5;
}
});
这里这样改就ok了,不过你这个程序还有好多问题呢。
public void paint(Graphics g){
g.drawImage(img2,0,0,this);
g.drawImage(img3,by,490,this);
g.drawImage(img,580,260,this);
repaint();
}
这里面还要加一个repaint();方法,要不看不出移动的,问题太多改不完,你问的问题我算是解决了,嘿嘿,给分吧,有什么问题可以hi我。