Java中如何实现小球碰撞并使用按钮控制数量
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关Java中如何实现小球碰撞并使用按钮控制数量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先根据程序要求写了一个窗口package th
千家信息网最后更新 2025年01月19日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安全错误
数据库的锁怎样保障安全
阿雪的全文数据库
数据库系统的安全管理软件
深圳市恒游网络技术
数据库实现路径查询
mybase自动备份数据库
全球网络安全监管趋势
海康威视运维管理服务器
莱芜仓库管理erp软件开发公司
AWKWARD翻译软件开发
下一代通信网络技术
无法获取到服务器信息
思科网络技术学院app
简述MPP数据库的主要功能
宿州电力软件开发需要多少钱
无线网络安全技术通俗的解释
数据库原理专业考试
影楼数据库
权限角色管理数据库
开展网络安全检查制度
服务器宕机拍错思路
哈尔滨理工大学网络安全专业
商业用什么软件开发
学习网络安全技术的理由
计算机网络技术双语
网络安全技术跟编程一样吗
网络安全注册评审指导原则
南京大学数据库老师
影楼数据库
青岛西海岸服务器
oracle数据库回滚点