java实现会反弹的小球示例

 更新时间:2014年04月29日 11:07:52   作者:  
这篇文章主要介绍了java实现会反弹的小球示例,需要的朋友可以参考下
Java实现简单的球的弹射,碰到墙壁就反弹一下,代码如下 



复制代码 代码如下:

package tsct;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.WindowStateListener;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class Main extends JFrame implements Runnable
{
    int x=40;
    int y=30;
    int width=50;
    int height=50;
    boolean xAdd=true;
    boolean yAdd=true;
    public void paint(Graphics g)
    {
        super.paint(g);
        //g.fillRect(x, y, width, height);
        g.setColor(Color.red);
        g.fillOval(x, y, width, height);
    }
    int i=1;
    @Override
    public void run()
    {
        // TODO Auto-generated method stub
        while(true)
        {
            if(yAdd)
                y+=15;
            else
                y-=15;
            if(y>=this.getHeight()-height||y<=25)
                yAdd=!yAdd;
            if(xAdd)
                x+=30;
            else
                x-=30;
            if(x>=this.getWidth()-width||x<=5)
                xAdd=!xAdd;
            repaint();
            try
            {
                Thread.sleep(40);
                i++;
            }
            catch (InterruptedException e)
            {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args)
    {
//        Main main=new Main();
//       
//        main.setVisible(true);
//        main.run();
        Main main=new Main();
        main.setVisible(true);
        main.setBounds(50, 50, 800, 600);
        Thread thread=new Thread(main);
        thread.start();
        try
        {
            Image image=ImageIO.read(new File(Main.class.getResource("").toString()));
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

相关文章

  • java使用apache commons连接ftp修改ftp文件名失败原因

    java使用apache commons连接ftp修改ftp文件名失败原因

    这篇文章主要介绍了java使用apache commons连接ftp修改ftp文件名失败原因解析,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • Java9新特性中的模块化详解

    Java9新特性中的模块化详解

    今天介绍一个Java 9的功能,模块化(Modular),这可能使Java有史以来最大的Feature,对Java9模块化相关知识感兴趣的朋友一起看看吧
    2022-03-03
  • spring boot linux启动方式详解

    spring boot linux启动方式详解

    这篇文章主要介绍了spring boot linux启动方式详解,分为为前台启动,后台启动和脚本启动的各种方式讲解,需要的朋友可以参考下
    2017-11-11
  • java客户端登陆服务器用户名验证

    java客户端登陆服务器用户名验证

    这篇文章主要为大家详细介绍了java客户端登陆服务器用户名验证的相关资料,需要的朋友可以参考下
    2016-05-05
  • java中使用POI生成Excel并导出过程

    java中使用POI生成Excel并导出过程

    这篇文章主要介绍了java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Spring Boot2.3 新特性分层JAR的使用

    Spring Boot2.3 新特性分层JAR的使用

    这篇文章主要介绍了Spring Boot2.3 新特性分层JAR的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Hibernate中Session增删改查操作代码详解

    Hibernate中Session增删改查操作代码详解

    这篇文章主要介绍了Hibernate中Session增删改查操作代码详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Java利用DelayQueue实现延迟任务代码实例

    Java利用DelayQueue实现延迟任务代码实例

    这篇文章主要介绍了Java利用DelayQueue实现延迟任务代码实例,DelayQueue 是一个支持延时获取元素的阻塞队列, 内部采用优先队列 PriorityQueue 存储元素,同时元素必须实现 Delayed 接口,需要的朋友可以参考下
    2023-12-12
  • 新手场景Java线程相关问题及解决方案

    新手场景Java线程相关问题及解决方案

    这篇文章主要介绍了新手场景Java线程相关问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 使用注解@Recover优化丑陋的循环详解

    使用注解@Recover优化丑陋的循环详解

    我们知道在实现一个功能的时候是可以使用不同的代码来实现的,那么相应的不同实现方法的性能肯定也是有差别的,下面这篇文章主要给大家介绍了关于使用注解@Recover优化丑陋的循环的相关资料,需要的朋友可以参考下
    2022-04-04

最新评论