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...相关推荐

  1. 弹力弹珠java_Java实力弹弹球实现代码

    先看看效果图: 直接上代码了. 微调按钮加画布画几个圆,再实现监听... package cn.hncu.threadDemo.thread2; import java.awt.Canvas; imp ...

  2. Baeldung Java 周评 | 第六十一弹(关键词:可移植并支持云的 HTTP 会话、Java 一流的 Money 及 Currency 支持、Java 8 内存管理改进、HTTP 2 客户端)

    开篇词 尤金的第 61 篇 Java 周评,诞生了! Spring 以及 Java 相关 可移植的.支持云的 HTTP 会话 在 Spring Boot 之后,我对使用的所有新 Spring 项目中感 ...

  3. IOS9+基础之警报框弹出和操作表弹出

    IOS9+基础之警报框弹出和操作表弹出 代码如下 // // ViewController.m // 001-UIAlertView // // Created by lujun on 2021/6/ ...

  4. js“弹出对话框”和“弹出窗口”详解

    JS中showModalDialog 详细使用 基本介绍:           showModalDialog()         (IE 4+ 支持)           showModelessD ...

  5. layui弹框传值_LAYUI弹出层详解

    还是一步步展示把 首先,layer可以独立使用,也可以通过Layui模块化使用.我个人一直是用的模块化的 所以下面素有的都是基于模块化的. 引入好相关文件就可以开始啦  今天放图片把 试着学一下放图片 ...

  6. Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

    本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为 ...

  7. 程序员面试金典适合java么,【程序员面试金典】面试题 01.03. URL化(示例代码)

    题目 URL化.编写一种方法,将字符串中的空格全部替换为%20.假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的"真实"长度.(注:用Java实现的话,请使用字符数组实现 ...

  8. java练习(数组工具类的封装)[目前写过最长的代码,虽然不难]

    java练习(数组工具类的封装)[目前写过最长的代码,虽然不难] package myUtil.arrayUtil;public class ArraysUtil {/*** 升序排列一个byte数组 ...

  9. jquery 弹出窗口_jQuery弹出窗口和工具提示窗口动画效果

    jquery 弹出窗口 In this tutorial, we are going to discuss about a jQuery plugin for responsive and acces ...

最新文章

  1. SAP WMSD集成之Copy WM Quantity – Copy WM qty as delivery qty into delivery
  2. fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
  3. keras手写数字识别--入门
  4. 打开Jupyter Notebook 时报错:EnvironmentLocationNotFound: Not a conda environment:
  5. java禁止js获取cookie_JS里面如何防止浏览器COOKIES溢出
  6. 如何修改服务器上的端口号,如何修改远程服务器端口号
  7. if/else if多分支语句(JS)
  8. csdn博客图片复制不过来怎么办?如何转载?
  9. 机器学习特征与类型概述
  10. AKS解决方案架构设计
  11. 用python海龟画一个三角形_海龟画笔---和孩子一起学python
  12. wps/word中怎么插入各种水平分隔线
  13. 深度学习为什么会出现validation accuracy大于train accuracy的现象?
  14. TI PMP解决方案简介
  15. 如何利用python整合excel_如何使用Python处理Excel
  16. 学计算机去旧金山,旧金山大学的计算机专业如何?
  17. 《操作系统真象还原》第九章
  18. 聚合数据火车票订票接口完成火车票订票流程(PHP)
  19. ArcGIS提取面状道路中心线
  20. 基于test log的自动结果分析

热门文章

  1. 2022电工(初级)判断题及模拟考试
  2. 鸿蒙开发板 Hi3816 Wi-Fi IoT 智能家居套件试用连载 - LiteOS万物互联
  3. 引发的异常: 0xC0000005: 读取位置 0x0000000200000000 时发生访问冲突
  4. Kpoint:HTTP/HTTPS/浏览器
  5. 七夕活动主题html邮件,2017七夕主题活动标语
  6. 人生格言警句(学习的空闲之余,看点儿杂志)
  7. java程序语言设计课后答案向金海,看看这篇文章吧!
  8. DevOps模式下测试左移和测试右移
  9. Bost asio库与线程池的使用
  10. 怎么使用_水处理活性炭怎么使用