java代码弹弹球_java_Java实力弹弹球实现代码,先看看效果图:直接上代码 - phpStudy...
Java实力弹弹球实现代码
先看看效果图:
直接上代码了。
微调按钮加画布画几个圆,再实现监听。。。
package cn.hncu.threadDemo.thread2;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.Timer;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class BallsJFrame extends JFrame implements ChangeListener{
private BallsCanvas ball;
private JSpinner spinner;
public BallsJFrame(){
super("弹弹球");
this.setBounds(300, 200, 400, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
Color colors[] = {Color.red,Color.green,Color.blue,Color.magenta,Color.cyan};
ball = new BallsCanvas(colors,100);
this.getContentPane().add(ball);//默认是CENTER位置
JPanel panel = new JPanel();
this.getContentPane().add(panel,"South");
panel.add(new JLabel("Delay"));
spinner = new JSpinner();
spinner.setValue(100);
panel.add(spinner);
spinner.addChangeListener(this);
this.setVisible(true);
}
@Override
public void stateChanged(ChangeEvent e) {
int value = Integer.parseInt(""+spinner.getValue());
ball.setDelay(value);
}
public static void main(String[] args) {
new BallsJFrame();
}
}
class BallsCanvas extends Canvas implements ActionListener, FocusListener{
private Ball balls[];//存放所有的球
private Timer timer;//javax.swing.Timer
public BallsCanvas(Color colors[] ,int delay){
this.balls = new Ball[colors.length];
for(int i=0,x=40;i
this.balls[i] = new Ball(x,x,colors[i]);
}
//让当前画布监听 焦点事件
this.addFocusListener(this);
timer = new Timer(delay,this);
timer.start();
}
public void setDelay(int delay){
timer.setDelay(delay);
}
@Override
public void paint(Graphics g) {
for(int i=0;i
g.setColor(balls[i].color);
//让每个球的坐标变化一下---(x坐标)
balls[i].x = balls[i].left ? balls[i].x-10:balls[i].x+10;
//当球碰壁时,更改球的方向
if(balls[i].x<=0||balls[i].x>=this.getWidth()-24){
balls[i].left = !balls[i].left;//切换方向
}
//让每个球的坐标变化一下---(y坐标)
balls[i].y = balls[i].up ? balls[i].y-10:balls[i].y+10;
//当球碰壁时,更改球的方向
if(balls[i].y<=0||balls[i].y>=this.getHeight()-22){
balls[i].up = !balls[i].up;//切换方向
}
g.fillOval(balls[i].x, balls[i].y, 20, 20);
}
}
@Override
public void actionPerformed(ActionEvent e) {
//System.out.println("aaa");
repaint();//刷新画布.调用paint(Graphics g)
}
@Override
public void focusGained(FocusEvent e) {
timer.stop();
}
@Override
public void focusLost(FocusEvent e) {
timer.restart();
}
private static class Ball{
int x,y;
boolean up,left;
Color color;
public Ball(int x, int y, Color color) {
this.x = x;
this.y = y;
this.color = color;
up = left = false;
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持phpstudy。相关阅读:
Javascript HTML5 Canvas实现的一个画板
如何实现IOS_SearchBar搜索栏及关键字高亮
Node.js的Koa框架上手及MySQL操作指南
详解C++编程中的析构函数
javascript的BOM汇总
如何解决win10 桌面右键菜单显示慢
C语言二进制思想以及数据的存储
SQL Server数据库重命名、数据导出的方法说明
win7系统玩地下城与勇士(DNF)卡在角色选择界面怎么办
Android Menu详解及示例代码
java留言管理系统中模糊查询实例分享
Android编程开发之EditText实现输入QQ表情图像的方法
JavaScript中双叹号!!作用示例介绍
php函数传值的引用传递注意事项分析
java代码弹弹球_java_Java实力弹弹球实现代码,先看看效果图:直接上代码 - phpStudy...相关推荐
- 弹力弹珠java_Java实力弹弹球实现代码
先看看效果图: 直接上代码了. 微调按钮加画布画几个圆,再实现监听... package cn.hncu.threadDemo.thread2; import java.awt.Canvas; imp ...
- Baeldung Java 周评 | 第六十一弹(关键词:可移植并支持云的 HTTP 会话、Java 一流的 Money 及 Currency 支持、Java 8 内存管理改进、HTTP 2 客户端)
开篇词 尤金的第 61 篇 Java 周评,诞生了! Spring 以及 Java 相关 可移植的.支持云的 HTTP 会话 在 Spring Boot 之后,我对使用的所有新 Spring 项目中感 ...
- IOS9+基础之警报框弹出和操作表弹出
IOS9+基础之警报框弹出和操作表弹出 代码如下 // // ViewController.m // 001-UIAlertView // // Created by lujun on 2021/6/ ...
- js“弹出对话框”和“弹出窗口”详解
JS中showModalDialog 详细使用 基本介绍: showModalDialog() (IE 4+ 支持) showModelessD ...
- layui弹框传值_LAYUI弹出层详解
还是一步步展示把 首先,layer可以独立使用,也可以通过Layui模块化使用.我个人一直是用的模块化的 所以下面素有的都是基于模块化的. 引入好相关文件就可以开始啦 今天放图片把 试着学一下放图片 ...
- Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为 ...
- 程序员面试金典适合java么,【程序员面试金典】面试题 01.03. URL化(示例代码)
题目 URL化.编写一种方法,将字符串中的空格全部替换为%20.假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的"真实"长度.(注:用Java实现的话,请使用字符数组实现 ...
- java练习(数组工具类的封装)[目前写过最长的代码,虽然不难]
java练习(数组工具类的封装)[目前写过最长的代码,虽然不难] package myUtil.arrayUtil;public class ArraysUtil {/*** 升序排列一个byte数组 ...
- jquery 弹出窗口_jQuery弹出窗口和工具提示窗口动画效果
jquery 弹出窗口 In this tutorial, we are going to discuss about a jQuery plugin for responsive and acces ...
最新文章
- SAP WMSD集成之Copy WM Quantity – Copy WM qty as delivery qty into delivery
- fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
- keras手写数字识别--入门
- 打开Jupyter Notebook 时报错:EnvironmentLocationNotFound: Not a conda environment:
- java禁止js获取cookie_JS里面如何防止浏览器COOKIES溢出
- 如何修改服务器上的端口号,如何修改远程服务器端口号
- if/else if多分支语句(JS)
- csdn博客图片复制不过来怎么办?如何转载?
- 机器学习特征与类型概述
- AKS解决方案架构设计
- 用python海龟画一个三角形_海龟画笔---和孩子一起学python
- wps/word中怎么插入各种水平分隔线
- 深度学习为什么会出现validation accuracy大于train accuracy的现象?
- TI PMP解决方案简介
- 如何利用python整合excel_如何使用Python处理Excel
- 学计算机去旧金山,旧金山大学的计算机专业如何?
- 《操作系统真象还原》第九章
- 聚合数据火车票订票接口完成火车票订票流程(PHP)
- ArcGIS提取面状道路中心线
- 基于test log的自动结果分析