JAVA 多线程 经典实例-弹跳小球

java游戏弹跳小球 java游戏作业,是设计弹跳小球在一个正方形中跳动的列子, 立即下载

 
import java.awt.*;
import java.lang.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class BallGame extends JFrame implements ActionListener
{
 JButton jbtStart = new JButton("Start");
 JButton jbtStop = new JButton("Stop");
 MainPanel mp = new MainPanel();
 public BallGame()
 {
  this.getContentPane().add(mp,BorderLayout.CENTER);
  mp.setBackground(Color.white);
  JPanel p=new JPanel();
  p.add(jbtStart);
  p.add(jbtStop);
  this.getContentPane().add(p,BorderLayout.SOUTH);
  jbtStart.addActionListener(this);
  jbtStop.addActionListener(this);
  
 }
 public static void main(String[] args)
 {
  BallGame bt = new BallGame();
  bt.setSize(300,300);
  bt.setVisible(true);
  bt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
 public void actionPerformed(ActionEvent e)
 {
  if(e.getSource()==jbtStart)
  {
            
            BallThread b=new BallThread(mp);
            mp.balls.addElement(b);
            b.start();   
  }
  else
  {
   System.exit(0);
  }
 }
}
class MainPanel extends Panel
{
   public Vector balls=new Vector();
    public void paint(Graphics g)
    {
     for(int i=0;i<balls.size();i++)
     {
      BallThread ball = (BallThread)balls.elementAt(i);
      ball.draw();
     }    
  
    }
}
class BallThread extends Thread
{
 
    MainPanel mainPanel;
    private static final int XSIZE=20;
    private static final int YSIZE=20;
    private int x=0;
    private int y=0;
    private int dx=2;
    private int dy=2;
    public BallThread(MainPanel b)
    {
     mainPanel=b;
    }
    public void draw()
    {
       Graphics g=mainPanel.getGraphics();
       g.fillOval(x,y,XSIZE,YSIZE);
       g.dispose();
 
    }
    public void move()
    {
       x+=dx;
       y+=dy;
       Dimension d=mainPanel.getSize();
       if(x<0){x=0;dx=-dx;}
       if(y<0){y=0;dy=-dy;}
       if(x+XSIZE>=d.width ) {x=d.width -XSIZE;dx=-dx;}
       if(y+YSIZE>=d.height ) {y=d.height -YSIZE;dy=-dy;}
       mainPanel.repaint();
 
    }
    public void run()
    {
       try
       {
          draw();
          while(true)
          {
              move();
      sleep(30);
          }
       }catch(Exception e){   }
    }
}


 

java编写弹跳的小球源代码(转载) java编写弹跳的小球源代码 立即下载

相关推荐

挡板系统源代码

挡板系统源代码

java 线程项目_Java小项目——多线程弹球

一、需求分析版本V1:多线程绘制小球版本V2:开启一个线程,绘制队列listBall内多个小球版本V3:使用启动和暂停按钮,控制线程小球的运动二、版本V1:多线程绘制小球点击绘制区域,获取x和y的坐标;创建和开始一个线程,线程中run()函数中内容为绘制小球;小球绘制卸载for循环内,每次加上速度v,更新坐标。UI页面类:package com.java8.threadballV1;import ...

weixin_36293680的博客 879

Java实现弹球游戏

用户打开此游戏后,窗口会有一个球移动,每次落到下面的时候,下面的板子必须接住。当接住一次后,球的速度越来越快。难度越来越大。如果接不住球,则游戏结束。

Java小项目——多线程弹球

一、需求分析 版本V1:多线程绘制小球 版本V2:开启一个线程,绘制队列listBall内多个小球 版本V3:使用启动和暂停按钮,控制线程小球的运动 二、版本V1:多线程绘制小球 点击绘制区域,获取x和y的坐标; 创建和开始一个线程,线程中run()函数中内容为绘制小球; 小球绘制卸载for循环内,每次加上速度v,更新坐标。 UI页面类: package com.java8...

「谁定义我是我」 2516

java做的小球弹跳小程序源码

本程序的bug已近在《java做的小球弹跳小程序源码2》中改过来了,请下载改过了的源码 该程序实现了小球的自由落体,弹跳,反弹。 小球在窗体里的位置随机产生,颜色随机产生,做抛物线运动,落到地面反弹,遇到墙壁反弹。 这个程序并不非常完美,欢迎提出修改意见,联系方式: 我的qq:374020709

【程序化天空盒】过程记录01:日月 天空渐变 大气散射

在做一个仿照原神的天空盒,写文章作为技术总结和记录。

qq_41835314的博客 6741

java线程和进程(运用多线程的小球碰撞游戏)

进程是什么?在我的理解中,进程就是程序执行的一个实例,比如说你运行了十个ie,那么就有10个独立的ie进程,另外,如果你打开windows系统的任务管理器,在进程标签下显示的就是当前系统运行的进程。每个进程都有自己的一块内存空间,和一系列的系统资源,其数据和状态完全独立。 线程是什么?线程是进程中的一个实体,自己不占用系统资源,但其与所属进程的其他线程共享进程所拥有的全部资源。线程本身的数据只有

narutolzj的专栏 2573

【面试经验】京东-技术产品经理一面:从紧张到反思的全流程复盘

本文详细复盘了京东技术产品经理一面的全流程,从面试前的简历打磨、业务理解和技术基础准备,到面试中的高压对话和突发状况应对,再到面试后的深度反思与改进方案。文章特别强调了技术产品经理需要具备的技术理解力、数据敏感度和商业思维,并提供了实用的面试建议和准备技巧。

weixin_28730927的博客 162

java实现挡板接小球游戏

import sun.plugin2.util.ColorUtil; import javax.swing.*; import java.awt.*; import java.awt.event.*; //挡板接小球游戏 //小球垂直运动 /*1、小球设置了四个关卡 2、通过每一关卡程序提示:“恭喜您已经进入下一关卡” 3、进入下一关卡小球改变一次颜色 4、进入下一关卡挡板缩短一段长度 5、进入下一关卡小球速度提高一个档位 6、程序结束:小球停止运行、并显示游戏结 束、显示所得分数*/ public

学员悟空的博客 1626

2025年MathorCup数学应用挑战赛【B题完整论文】附参考代码(免费分享)

摘。

RS_handy的博客 2694

从安装到出图:一份给振动测试新手的LMS Test.Lab 2021完整避坑手册(含许可证更新和常见弹窗解决)

本文为振动测试新手提供LMS Test.Lab 2021的完整使用指南,涵盖安装配置、许可证更新、数据采集到频域后处理的全流程。特别针对常见弹窗错误提供解决方案,并详细讲解Colormap时频图分析技巧,帮助用户快速掌握振动数据分析核心技能。

weixin_29268331的博客 983

弹跳小球

jump_ball_1 # include # include # include # include /* 弹跳小球: 画布 20*10 小球位置 10*5 画布 left top right bottom 速度 velocity_x velocity_y */ int main() { int ball_x = 0, ball_y = 5; int lef

码界吴彦祖 449

对比学习(contrastive learning)

什么是自监督学习? 举个通俗的例子:即使不记得物体究竟是什么样子,我们也可以在野外识别物体。 我们通过记住高阶特征并忽略微观层面的细节来做到这一点。那么,现在的问题是,我们能否构建不关注像素级细节,只编码足以区分不同对象的高阶特征的表示学习算法?通过对比学习,研究人员正试图解决这个问题。 什么是对比学习? 对比学习是一种自监督学习方法,用于在没有标签的情况下,通过让模型学习哪些数据点相似或不同来学习数据集的一般特征。 让我们从一个简单的例子开始。想象一下,你是一个试图理解世界的新生婴儿。在家里,假设你有两只

cziun的博客 11万+

Java实现小球在窗口弹跳(Bouncing Balls App)

本篇博客将主要介绍一个名为 Bouncing Balls App 的小程序,使用 Java 编写,主要运用了 GUI 编程和多线程的知识点。首先,我们来了解一下这个小程序做了什么。这个小程序可以在自动生成的窗口中生成大量的彩色球,每个球都会自动以一定的速度在窗口中弹跳。接着,我们来看一下实现这个小程序的关键代码。

2301_76675652的博客 1178

44、单级静态电流消耗最小化方法及功率优化比较器设计

本文探讨了单级静态电流消耗最小化方法及功率优化的多米诺逻辑比较器设计。通过分析类“AB”输入CMOS差分对电路,提出利用补偿电流源实现高低电流模式切换,提升运算放大器性能;结合VTCMOS与时钟门控技术,在90nm CMOS中设计低功耗比较器,并采用多米诺逻辑提高速度与能效。通过对比传统与改进型多米诺逻辑的静态功耗、动态功耗、延迟和PDP,验证了所提方案在高性能与低功耗方面的优势,适用于便携式设备等对能效要求严苛的应用场景。

pp12345的博客 121

SOME/IP协议详解「总目录」

SOME/IP系列文章总目录

雪云飞星的博客 2万+

复习Java小球游戏代码分享&Java面试题MySQL中常用的锁&生活【记录一个咸鱼大学生三个月的奋进生活】021

记录一个咸鱼大学生三个月的奋进生活021复习Java小球游戏游戏界面的代码小球运动线程的代码运行游戏的代码运行结果代码分享学习Java面试题(MySQL中常用的锁)照片分享 复习Java小球游戏 刚好上一次我们才复习完多线程的知识,这次就来实践一下 做一个基于Java多线程,Javaswing,random包 的小球游戏 就是类似以前电脑屏保的那个泡泡碰撞游戏,一看就能看一天的那种 我们也来做个多个小球(多线程)同时在界面(swing)中乱撞(random)的游戏 游戏界面的代码 还是先从这个游戏的窗体开始

coiokok的博客 3387

Cadence OrCAD Capture 保持元器件编号情况复制元件,复制后元器件编号与复制前不同的问题解决

如下图所示复制时,已经勾选了“Preserve reference on copy”但是复制后的编号却与复制前不一样。本文简单介绍其原因及解决方法。

fydar的博客 3163

线程小球游戏

简易小球游戏

qq_46931102的博客 169

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java实现跳动的小球,根据需要选择速度

import java.awt.event.*;import java.awt.*;import javax.swing.*;public class my_ball extends JFrame implements Runnable{ static int a=5,b=2;//a是小球上下移动的速度,b是小球左右移动的速度. static int x=0,y=50;//小球的初始坐标 stat...

RememberMePlease的博客 1759

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java用线程做小球碰撞_JAVA核心技术之球体碰撞多线程版

1 /**2 @version1.32 2004-07-273 @authorCay Horstmann4 */56 import java.awt.*;7 import java.awt.event.*;8 import java.awt.geom.*;9 import java.util.*;10 import javax.swing.*;1112 /**13 Shows an a...

weixin_33959449的博客 193

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

java线程初体验

拆分任务,将小球的移动重绘从事件调度线程中拆分处理,放在独立的线程中,使之互不关联。:表示一个球对象,包含球的位置、速度等属性,以及球的移动和绘制方法。:表示主窗口,包含一个球组件和几个按钮,用于控制球的运动。:表示球的组件,负责绘制球,并管理球的添加和移动。:根据当前速度移动球的位置,如果碰到边界则反弹。:向组件中添加一个球,并控制球的运动。:一个球的列表,用于管理多个球对象。:程序的入口,创建并显示主窗口。:一个球组件,用于显示球的运动。:球的运动步数和每步的延迟时间。:获取球的形状,用于绘制。

m0_73835569的博客 1152

线程的概念

实例:弹跳小球,结果是close按钮无效,只要结束才能close掉。 小球 package com.wht.demo.threadone; import java.awt.geom.Ellipse2D; import java.awt.geom.Rectangle2D; /** * @author JDIT */ public class Ball { private stati...

JDIT的博客 194

非多线程 跳动的小球 Bounce.java

<br />package Default; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.util.*; import javax.swing.*; /** * * Shows an animated bouncing ball. * @author sunnyykn * */ public class Bounce { public stati

杨梅树的盔甲 2381

线程Java

1.概念理解 1.每个Java程序都至少有一个线程,即主线程。当一个Java程序启动时,JVM会创建主程序,并在该线程中调用程序的main()方法。在单个程序中同时运行多个线程完成不同的工作,称为多线程。 线程是程序执行流的最小单元。 2. 一个应用程序就是一个线程,而线程是一个进程内部的多个运行单位。多个进程的内部数据和状态都是完全独立的,而多线程是共享一块内存空间和一组系统...

iteye_17531的博客 140

郭克华手机编程教学视频----我的练习源码(20)案例2:绘制一个红色的小球,让其慢慢下落,然后又弹起来

 /* * To change this template, choose Tools | Templates * and open the template in the editor. */package lession14;import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Command;im

默然说话 1592
上一篇: Linux上安装VMware 6.5 tools
下一篇: 全文检索系统与lucene简介
lwlsoftware
博客等级 码龄18年 5粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值