JAVA 实现漂浮效果

package Rong;

import java.awt.Toolkit;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

import javax.swing.Timer;

public class FlyFly extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;

private JButton jb = new JButton();

private Timer tm;

// -----最大点击次数,消失,必须大于或等于1

private static int hp = 1;

// -----最大坐标

private static int W;

private static int H;

// -----当前坐标

private static int xp;

private static int yp;

// -----当前移动步径

private static int xstep = 3;

private static int ystep = 3;

// -----最大移动步径(随机范围,可以设置)

private static int maxxstep = 19;

private static int maxystep = 17;

public FlyFly(int w, int h) {

W = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth() - w;

H = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight() - h;

System.out.println(W + ":" + H);

this.setSize(w, h);

xp = W / 2;

yp = H / 2;

this.setLocation(xp, yp);

this.setAlwaysOnTop(true); //窗体总在最前面

this.setResizable(false); //窗体不能改变大小

this.setUndecorated(true); //窗体不要边框

this.getContentPane().setLayout(new GridLayout(1, 1));

this.getContentPane().add(jb);

jb.setIcon(new ImageIcon("D:/al.jpg")); //设置JButton的图片效果

jb.addActionListener(this); //这个不能忘记,挂载ActionListener接口。

tm = new Timer(100, this); //Timer是需要依附在一个实现了ActionListener接口的对象上。(单位毫秒,可以设置)

tm.start(); //Timer需要打开

this.setVisible(true);

}

public void changeDirection() {

// 如果到达边沿要转弯

if ((xp <= 0 && xstep < 0) || (xp >= W && xstep > 0)) {

xstep = -xstep;

}

if ((yp <= 0 && ystep < 0) || (yp >= H && ystep > 0)) {

ystep = -ystep;

}

this.setLocation(xp, yp); // 位置重新设置

}

public void actionPerformed(ActionEvent e) {

// 坐标按照当前状态移动

xp += xstep;

yp += ystep;

if (e.getSource() == jb) { // 点击造成随机生成移动状态

hp--;

xp = (int) System.currentTimeMillis() % W;

yp = (int) System.currentTimeMillis() % H;

xstep = (int) System.currentTimeMillis() % (2 * maxxstep + 1)

- maxxstep;

ystep = (int) System.currentTimeMillis() % (2 * maxystep + 1)

- maxystep;

}

changeDirection(); // 刷新显示状态

if (hp <= 0) {

System.exit(0);

}

}

public static void main(String[] _s) {

FlyFly ff = new FlyFly(200, 200);

}

}

原作者:ios基地

原文出处:CSDN博客

原文链接:https://blog.csdn.net/u012202641/article/details/11896647?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160464154519195264713520%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160464154519195264713520&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduend~default-4-11896647.pc_v1_rank_blog_v1&utm_term=java&spm=1018.2118.3001.4450

java效果_JAVA 实现漂浮效果相关推荐

  1. php js漂浮,JavaScript_js实现图片漂浮效果的方法,本文实例讲述了js实现图片漂 - phpStudy...

    js实现图片漂浮效果的方法 本文实例讲述了js实现图片漂浮效果的方法.分享给大家供大家参考.具体分析如下: 描述:打开网页就看到不停在飘动的图片,点击连接到其他页面:起到着重强调的效果! test # ...

  2. Java中的实现马赛克效果以及灰度效果----整张图片

    ** Java中的实现马赛克效果以及灰度效果-----整张图片 ** 实现该效果的思路: 我们知道图片是由一个一个的像素组成的,比如一张图片的分辨率为800 * 800,则它是由800个像素 * 80 ...

  3. mysql vue 菜谱_vue+ java 实现多级菜单递归效果

    效果如图: 大概思路:树形视图使用的是vue官方事例代码,java负责封装数据,按照vue官方事例的数据结构封装数据即可.有两个需要关注的点: 1.官方事例的数据结构是一个对象里面包含着集合,而不是一 ...

  4. java递归实现多级菜单栏_vue+ java 实现多级菜单递归效果

    效果如图: 大概思路:树形视图使用的是vue官方事例代码,java负责封装数据,按照vue官方事例的数据结构封装数据即可.有两个需要关注的点: 1.官方事例的数据结构是一个对象里面包含着集合,而不是一 ...

  5. java飘落的雪花_[Java教程]实现雪花飘落效果

    [Java教程]实现雪花飘落效果 0 2016-11-02 21:00:17 雪花飘落 body{background:#000;background: url(http://www.wallcoo. ...

  6. java 实现 setTimeout 和 setInterval 效果

    java 实现 setTimeout 和 setInterval 效果 一. 先实现setTimeout 其实就是利用java的Timer类与TimerTask类实现setTimeout的效果. 代码 ...

  7. java easing_[Java教程]jQuery Easing 动画效果扩展

    [Java教程]jQuery Easing 动画效果扩展 0 2015-11-20 11:00:03 官网:http://gsgd.co.uk/sandbox/jquery/easing/ jQuer ...

  8. java设置滚动条的样式_[Java教程]美化浏览器滚动条效果

    [Java教程]美化浏览器滚动条效果 0 2016-10-31 16:02:28 任务需求:由于不同浏览器对滚动条的样式解析存在差异,为统一样式风格,增加整体美观程度,需要实现自定义滚动条. 第一种方 ...

  9. Java图形程序水纹倒映效果

    效果图如下: package org.test; import java.awt.Color; import java.awt.Frame; import java.awt.Graphics; imp ...

最新文章

  1. 深度学习调参有哪些技巧?
  2. Microbiome:揩老鼠皮毛揩来高分文章——野生哺乳动物的皮肤和肠道微生物对核污染的反应...
  3. 由一个园友因为上传漏洞导致网站被攻破而得到的教训
  4. 配置整合DWR3.0和Spring2.5使用annotation注解
  5. AI公开课:19.02.20 雷鸣教授《人工智能革命与机遇》课堂笔记以及个人感悟
  6. 神经网络基础_反向传播_证明
  7. TCP发送接口(如send(),write()等)的返回值与成功发送到接收端的数据量无直接关系
  8. 【杂项】2020年年度报告
  9. 一行代码扫出“敬业福”
  10. mysql 百度地图 省市_批量获取百度地图的行政区划电子围栏
  11. CodeBlocks下载安装与SDL下载使用配置教程
  12. NB-IOT物联网模块BC26问题合集
  13. macOS | 提取BDrip(封装格式为mkv)中视频与音频并重新封装为mp4
  14. ArcGIS多种面积计算方法的区别
  15. 技嘉 B85-HD3 4590 OC 引导文件 基本完美
  16. 易地推拓客分享:内容获客是最稳定的获客方式之一
  17. 关于在dialog中重置form表单失败的问题
  18. MP3的采样率和比特率
  19. 董卫凤:不服输是成功最好的催化剂
  20. 常见排序算法时间复杂度和空间复杂度

热门文章

  1. MySQL8高级_读写分离和分库分表
  2. 2019年二季度书单
  3. css中元素横向放置,使用CSS将元素放置到右侧
  4. 输入H.264流,输出封装格式流
  5. 旅行家算法(贪心算法)
  6. 2022T电梯修理考试题库及模拟考试
  7. word表格导出html代码,(网页源代码中的表格数据怎么导出excel)如何将把从WORD、EXCEL中复制的内容转换成HTML源代码,再通过网页表单提交上传到数据库?...
  8. [转载]使用JDBC创建数据库对象
  9. 简练软考知识点整理-规划成本管理过程
  10. Spring HikariDataSource连接MySQL8.0