java画一个小车_求大神解答,Java 画出如下图所示的小车

这篇博客通过一个Java Swing程序展示了如何绘制一个小车图形,包括车身、车轮,并且能够根据键盘输入左右移动。代码中详细解释了各个部分的绘制方法,如矩形、圆形、弧形等,同时提供了图形的移动功能。
摘要由CSDN通过智能技术生成

共回答了18个问题采纳率:100%

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Point;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import javax.swing.JFrame;

import com.me.util.JFrameUtil;

public class SwingCar extends JFrame {

x05private final int rect_Width = 80;

x05private final int rect_Height = 50;

x05private final int radius = 15;

x05private final int arcAngle = 30;

x05private Point p = new Point();

x05public SwingCar() {

x05x05setSize(500,300);

x05x05setVisible(true);

x05x05setResizable(false);

x05x05setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

x05x05JFrameUtil.toCenter(this);

x05x05p = new Point(getWidth() / 2,getHeight() / 2);

x05x05move();

x05}

x05@Override

x05public void paint(Graphics g) {

x05x05super.paint(g);

x05x05drawRect(p);

x05x05drawRolls(p);

x05x05g.drawLine(0,getHeight()/2+rect_Height/2+radius,getWidth(),getHeight()/2+rect_Height/2+radius);

x05}

x05public void drawRect(Point c) {

x05x05Graphics2D g = (Graphics2D) getGraphics();

x05x05g.setColor(Color.red);

x05x05g.drawRect((int) (c.getX() - rect_Width / 2),

x05x05x05x05(int) (c.getY() - rect_Height / 2),rect_Width,rect_Height);

x05x05g.setColor(Color.black);

x05x05g.drawLine((int) (c.getX() - rect_Width / 2)-50,(int) (c.getY() - rect_Height / 2)-rect_Height/2,(int) (c.getX() - rect_Width / 2),(int) (c.getY() - rect_Height / 2)+rect_Height/2);

x05x05g.setColor(Color.green);

x05x05g.fillOval((int) (c.getX() - rect_Width / 2)-50-2,(int) (c.getY() - rect_Height / 2)-rect_Height/2-2,10,10);

x05}

x05public void drawRolls(Point c) {

x05x05Graphics2D g = (Graphics2D) getGraphics();

x05x05g.setColor(Color.blue);

x05x05// first roll

x05x05g.fillOval((int) (c.getX() - rect_Width / 4 - radius),(int) (c.getY()

x05x05x05x05+ rect_Height / 2 - radius),radius * 2,radius * 2);

x05x05g.setColor(Color.green);

x05x05g.fillArc((int) (c.getX() - rect_Width / 4 - radius),(int) (c.getY()

x05x05x05x05+ rect_Height / 2 - radius),radius * 2,radius * 2,

x05x05x05x05calcAngle(c),arcAngle);

x05x05// second roll

x05x05g.setColor(Color.blue);

x05x05g.fillOval((int) (c.getX() + rect_Width / 4 - radius),(int) (c.getY()

x05x05x05x05+ rect_Height / 2 - radius),radius * 2,radius * 2);

x05x05g.setColor(Color.green);

x05x05g.fillArc((int) (c.getX() + rect_Width / 4 - radius),(int) (c.getY()

x05x05x05x05+ rect_Height / 2 - radius),radius * 2,radius * 2,

x05x05x05x05calcAngle(c),arcAngle);

x05}

x05public int calcAngle(Point c) {

x05x05Point center = new Point(getWidth() / 2,getHeight() / 2);

x05x05double distance = c.getX() - center.getX();

x05x05int angle = (int) (180 * distance / (Math.PI * radius));

x05x05return -angle;

x05}

x05public void move() {

x05x05this.addKeyListener(new KeyAdapter() {

x05x05x05@Override

x05x05x05public void keyPressed(KeyEvent e) {

x05x05x05x05if (e.getKeyCode() == KeyEvent.VK_RIGHT) {

x05x05x05x05x05p.translate(2,0);

x05x05x05x05} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {

x05x05x05x05x05p.translate(-2,0);

x05x05x05x05}

x05x05x05x05repaint();

x05x05x05}

x05x05});

x05}

x05public static void main(String[] args) {

x05x05SwingCar sc = new SwingCar();

x05}

}

1年前

追问

2

4540056516

如果用jcreator软件做呢?

4540056516

这个和JCreator有什么关系吗?JCreator不就是一个开发环境,像Eclipse一样,java的语法还不是这样。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值