JAVA程序找错~
我做了一个JAVA程序,程序很简单,就是在屏幕上显示一个矩形块,用键盘上的左右方向键可以控制它左右动,我觉得做的没问题,可是运行时怎么按它都不动,哪位大侠能帮忙找一下错误...
我做了一个JAVA程序,程序很简单,就是在屏幕上显示一个矩形块,用键盘上的左右方向键可以控制它左右动,我觉得做的没问题,可是运行时怎么按它都不动,哪位大侠能帮忙找一下错误啊(程序包括两个类,一个是矩形块类,还有一个是主类
import java.awt.*;
import java.awt.event.*;
public class board {
int x,y,w,h,v;
public board(int x1,int y1, int w1,int h1,int v1 ){
x=x1;y=y1;w=w1;h=h1;v=v1;}
public void draw(Graphics g){ g.setColor(Color.blue); g.fillRect(x,y,w,h); }
public void collide(dong game){
if( x < 0 || x + w> game.appW ){ v= -v; } //碰左右窗口边
}//与窗口的碰撞检测
public void keyPressed(int key){
if(key == KeyEvent.VK_RIGHT){ //若是右箭头
x=x+v; //挡板状态更新
}else if(key == KeyEvent.VK_LEFT){//若是左箭头
x=x-v; //挡板状态更新
}
}
}
主类:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class dong extends Applet implements KeyListener{
board board1;
int appW, appH;
public void init(){
addKeyListener(this);
appW = getWidth(); appH = getHeight();
board1 = new board( appW/2-30, appH-60, 30, 30, 20 );
}
public void paint(Graphics g){
board1.draw(g);
}
public void keyTyped(KeyEvent e){}
public void keyPressed(KeyEvent e){
int key = e.getKeyCode(); //获得被按得键的标示
board1.keyPressed(key); //转发给挡板对象处理
board1.collide(this);
repaint(); //游戏状态已改变,激励系统重画
}
public void keyReleased(KeyEvent e){}
} 展开
import java.awt.*;
import java.awt.event.*;
public class board {
int x,y,w,h,v;
public board(int x1,int y1, int w1,int h1,int v1 ){
x=x1;y=y1;w=w1;h=h1;v=v1;}
public void draw(Graphics g){ g.setColor(Color.blue); g.fillRect(x,y,w,h); }
public void collide(dong game){
if( x < 0 || x + w> game.appW ){ v= -v; } //碰左右窗口边
}//与窗口的碰撞检测
public void keyPressed(int key){
if(key == KeyEvent.VK_RIGHT){ //若是右箭头
x=x+v; //挡板状态更新
}else if(key == KeyEvent.VK_LEFT){//若是左箭头
x=x-v; //挡板状态更新
}
}
}
主类:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class dong extends Applet implements KeyListener{
board board1;
int appW, appH;
public void init(){
addKeyListener(this);
appW = getWidth(); appH = getHeight();
board1 = new board( appW/2-30, appH-60, 30, 30, 20 );
}
public void paint(Graphics g){
board1.draw(g);
}
public void keyTyped(KeyEvent e){}
public void keyPressed(KeyEvent e){
int key = e.getKeyCode(); //获得被按得键的标示
board1.keyPressed(key); //转发给挡板对象处理
board1.collide(this);
repaint(); //游戏状态已改变,激励系统重画
}
public void keyReleased(KeyEvent e){}
} 展开
5个回答
展开全部
你需要 System.out出来一些信息,去调试你的程序,确保你的keyPressed被执行了。
然后一步步跟踪一下。
然后一步步跟踪一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我试了没问题阿。。。。。。
不会动是因为你没有激活窗口吧,用鼠标点一下空白处。。
嗯,就好了
不会动是因为你没有激活窗口吧,用鼠标点一下空白处。。
嗯,就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哥们 你这个好使啊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有主入口?还是线程冲突了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询