Java中如何实现小球碰撞并使用按钮控制数量
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关Java中如何实现小球碰撞并使用按钮控制数量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先根据程序要求写了一个窗口package th
千家信息网最后更新 2026年11月02日Java中如何实现小球碰撞并使用按钮控制数量
这篇文章将为大家详细讲解有关Java中如何实现小球碰撞并使用按钮控制数量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
先根据程序要求写了一个窗口
package three.day; import java.awt.event.*;import javax.swing.*; public class Windows extends JFrame{ DrowJPs jp=new DrowJPs(); public void init() { this.setSize(800,500); this.setLocationRelativeTo(rootPane); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("天沫丶寒枫"); this.add(jp); this.setVisible(true); } public static void main(String[] args) { Windows win=new Windows(); win.init(); } }然后写一个画图
package three.day;import java.awt.Color;import java.awt.Graphics;import javax.swing.JPanel; public class DrowJPs extends JPanel implements Runnable{ int[] x=new int[1000],y=new int[1000],s=new int[1000],xt=new int[1000],yt=new int[1000]; int[] r=new int[1000],g=new int[1000],b=new int[1000]; int num=5; public DrowJPs() { for (int i = 0; i < 1000; i++) { x[i]=(int)(Math.random()*450); y[i]=(int)(Math.random()*230); r[i]=(int)(Math.random()*256); g[i]=(int)(Math.random()*256); b[i]=(int)(Math.random()*256); xt[i]=(int)(Math.random()*4+1); yt[i]=(int)(Math.random()*4+1); s[i]=(int)(Math.random()*200+20); } Thread t=new Thread(this); Thread t1=new Thread(this); t.start(); t1.start(); } public void paint(Graphics gr) { super.paint(gr); setBackground(Color.pink); for (int i = 0; i < num; i++) { gr.setColor(new Color(r[i],g[i],b[i])); gr.fillOval(x[i], y[i], s[i], s[i]); } } public void run() { while(true) { for (int i = 0; i < num; i++) { if(x[i]<=0|x[i]>=(790-s[i]))xt[i]*=-1; if(y[i]<=0|y[i]>=(465-s[i]))yt[i]*=-1; x[i]+=xt[i];y[i]+=yt[i]; try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } repaint(); } } }}开了俩个线程,一个数量大了有点卡
这样运行就ok啦

另外有个拓展要求
使用鼠标控制增加球的数量
光增加怎么行呢,当然也得来一个减少
那就再init函数里加入
JButton btn = new JButton("增加一个小球"); JButton btn1 = new JButton("减少一个小球"); btn.setBounds(0, 0, 400, 600); btn1.setBounds(400, 0, 400, 600); this.add(btn); this.add(btn1); btn.addActionListener(new MyListener()); btn1.addActionListener(new MyListener1());注意画布jp一定要加在按钮的后面
不然是看不见画布的
再写俩个监听就行了
class MyListener implements ActionListener{ public void actionPerformed(ActionEvent e) { jp.addnum(0); } } class MyListener1 implements ActionListener{ public void actionPerformed(ActionEvent e) { jp.addnum(1); } }传01方便画布那边检测增减
画布那边简简单单加个设置num的函数就行
public void addnum(int i) { if(i==0)num++; else num--;}呼,完成了,就是按钮不时地会闪现出来有点烦,
还有球减到0画布可就没了
关于"Java中如何实现小球碰撞并使用按钮控制数量"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
画布
小球
按钮
数量
控制
篇文章
碰撞
函数
更多
不错
实用
简简
内容
就是
文章
知识
程序
线程
鼠标
里加
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
华服互联网科技靠谱吗
鸠鸠互联网科技
互联网的科技创新
中国互联网科技发展
顺玮阁互联网科技
润盈互联网科技
郑州华宇互联网科技
互联网前沿科技
互联网科技博客
青海省互联网新科技
济南华为互联网科技产业总部基地
福建科技产业互联网发展
互联网5g黑科技有哪些
新兴科技互联网创新大赛颁奖典礼
宇信科技在杭州互联网排第几
信承诺互联网科技有限公司
北京互联网科技类企业分布
杭州融税互联网科技有限公司
长沙易易互联网科技有限公司
六子台科技互联网展会
广州百单互联网科技有限公司
互联网科技ppt模板
万达互联网科技
科技互联网创业计划书
互联网科技博主是什么意思
皮皮虾互联网科技有限公司
广州梦谷互联网科技有限公司领导
普陀区互联网教育科技管理办法
互联网科技机房
科技互联网公司两年变化