2020.2.25 模拟汽车比赛,汽车从左到右移动

编程入门 行业动态 更新时间:2024-10-14 02:23:36

2020.2.25 模拟<a href=https://www.elefans.com/category/jswz/34/1770130.html style=汽车比赛,汽车从左到右移动"/>

2020.2.25 模拟汽车比赛,汽车从左到右移动

学习到事件驱动程序,通过Timer创造一个监听类,使得paintComponent函数写出来的小车可以移动,代码如下。在这里插入代码片
主体框架

![在这里插入图片描述](.png)
**内部类画小车的详细代码**
![在这里插入图片描述](.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h5eTE5OThf,size_16,color_FFFFFF,t_70)
**结果**
![在这里插入图片描述](.png)
小车完全可以移动,而且移动速度由Timer类的对象timer的属性所决定源码如下import java.awt.Color;
import java.awt.Graphics;
import java.awt.Polygon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;/*** 做一个赛车游戏* @author 16584**/
public class GameCar extends JFrame{//构造器public GameCar(){//添加小车add(new ShowCar());}//mainpublic static void main(String[] args) {GameCar frame=new GameCar();frame.setTitle("Moving Car");frame.setSize(300,300);//frame.pack();  使用pack可以不设置框架大小setSize,根据组件大小而自动生成框架大小frame.setLocationRelativeTo(null);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}//内部类,存放小车面板和Timer监听器static class ShowCar extends JPanel{//属性x和y,存放小车初始位置private int x=0;private int y;//内部构造器public ShowCar(){//添加Timer监听器Timer timer=new Timer(40,new TimerListener());//开始监听timer.restart();}//画小车protected void paintComponent(Graphics g) {super.paintComponent(g);y=getHeight();//小车由两个圆为车轮,一个长方形为车身,梯形为顶部//画车轮g.fillOval(x+10, y-10, 10, 10);g.fillOval(x+30, y-10, 10, 10);//画车身g.setColor(Color.gray);g.fillRect(x, y-20, 50, 10);//画车顶g.setColor(Color.DARK_GRAY);//先添加线段Polygon p=new Polygon();//添加点p.addPoint(x+10, y-20);p.addPoint(x+20, y-30);p.addPoint(x+30, y-30);p.addPoint(x+40, y-20);//将线段添加到gg.fillPolygon(p);//让x自增5,以显示移动感x+=5;//如果x到达右端,则重新设为左端if(x>getWidth())x=-50;}//Timer监听器class TimerListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {//每次都调用画图repaint();}}}
}

更多推荐

2020.2.25 模拟汽车比赛,汽车从左到右移动

本文发布于:2024-02-25 19:17:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1700027.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:汽车   左到右

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!