yaqiukasi 2016-04-15 21:33 采纳率: 0%
浏览 1358
已采纳

java问题,为什么画出的小球不能动

import java.awt.*;
public class New01
{
public New01()//定义主类DrawFrame
{
Frame f=new Frame("my app");//建立框架
GamePanel mp=new GamePanel();//建立绘图容器
f.setLocation(300,200);
f.setSize(300,300);
f.add(mp);//将GamePanel对象添加到Frame对象中去
f.setVisible(true);
}

public static void main(String[] args)
{
    new New01();//实例化
    //GamePanel.gameLoop();
}

}

class GamePanel extends Panel
{
private int x;//该变量表示小球左上角的横坐标
private int y;//该变量表示小球左上角的纵坐标
private int diameter;//该变量表示小球的直径

public GamePanel()//构造函数,初始化各个变量
{
    x=50;
    y=50;
    diameter=100;

}

public void paint(Graphics g)
{
    g.setColor(Color.BLUE);//设置画笔颜色为蓝色
    g.fillOval(x,y,diameter,diameter);//调用画圆的方法绘制小球
}

public void gameLoop()//该方法用来动态改变小球的坐标,并对小球进行重绘
{
    while(true)
    {
        x++;
        for(int i=1;i<10000000;i++)
        {}
        repaint();
    }
}

}

展开全部

  • 写回答

2条回答 默认 最新

  • lambda-fk 2016-04-17 19:21
    关注

    java问题,为什么画出的小球不能动

    那是因为你设置的坐标变化的方法gameLoop没有被调用啊

    小球动的原理是:
    设置一个初期坐标
    然后改变小球的坐标(可以使用一些函数了)
    然后通过调用repaint()方法来间接调用这个paint(Graphics g)方法

    你的代码做如下改动:
    gameLoop()方法内部:
    GamePanel中增加如下代码:
    在x++下面
    ** if (x > 600) {
    x = 50;
    }**

        把那个for(int i=1;i<10000000;i++)循环去掉
        改成      try {
        Thread.sleep(1000);
        } catch (InterruptedException e) {
        e.printStackTrace();
        }
    

    New01中
    要进行这个gameLoop方法的调用
    在方法public New01()的最后一行添加如下代码:
    try {
    Thread.sleep(3000);
    } catch (InterruptedException e1) {
    e1.printStackTrace();
    }
    mp.gameLoop();

    改动之后球就可以动了
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部