大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
去掉TextField后的程序,这个程序是要用到repaint()的,具体请参考程序中的注释位置:
成都创新互联公司专业为企业提供天等网站建设、天等做网站、天等网站设计、天等网站制作等企业网站建设、网页设计与制作、天等企业网站模板建站服务,10年天等做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
import java.awt.*;
import java.awt.event.*;
class mCar extends Frame{
Color redColor;
int xl=80,yl=80,speed=10,step=5;/*********注意这里***********/
public mCar(){
addKeyListener(new KeyAdapter(){ /*********注意这里***********/
public void keyPressed(KeyEvent e){
if(e.getKeyCode()== KeyEvent.VK_UP){
System.out.println("\n Go Up");
yl-=speed;/*********注意这里***********/
}
else if(e.getKeyCode()== KeyEvent.VK_DOWN){
System.out.println("\n Go Down");
yl+=speed;/*********注意这里***********/
}
else if(e.getKeyCode()== KeyEvent.VK_LEFT){
System.out.println("\n Go Left");
xl-=speed;/*********注意这里***********/
}
else if(e.getKeyCode()== KeyEvent.VK_RIGHT){
System.out.println("\n Go Right");
xl+=speed;/*********注意这里***********/
}
else if(e.getKeyCode()== KeyEvent.VK_F1){
speed+=step;/*********注意这里***********/
System.out.println("\n Speed Up");
}
else if(e.getKeyCode()== KeyEvent.VK_F2){
System.out.println("\n Speed Down");
speed-=step;/*********注意这里***********/
}
else
System.out.println(e.getKeyChar());
repaint();/*********注意这里***********/
}
}
);
setSize(400,300);
setVisible(true);
setLocation(400,200);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
}
);
}
public void paint(Graphics g){
g.setColor(Color.GREEN);
g.fillRect(xl, yl, 40, 40);/*********注意这里***********/
}
}
public class miniCar {
public static void main(String[] args){
new mCar();
}
}
监听一下窗口关闭事件就可以了WindowEvent。 监听到关闭事件后代码大概如下
:假设向左移动出窗口
int locationX ;
while(locationX 0)
{
locationX -= 10;
this.setLocation(locationX, y);
this.repaint();
Thread.sleep(50);
}
哦。向下移,就是修改y坐标的。也和上面差不多。放心好了。不会不舒服,利用Thread.sleep控制移动延迟,locationY -= speed控制移动的幅度。
你这只有坐标值改变啊,没有更新画布,在herox=herox-10下面加上一句jhero.setX(herox);