java 歌词_请问吧内有大神用JAVA做过桌面歌词吗
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
写了个简单的例子给你:
public class TextChangePane extends JComponent implements ActionListener {
private static final int CYCLE_TIME = 10000;
private long startTime = 0;
private long nowTime = 0;
private float move = 0.0001f;
private Timer timer;
private String text = "一二三四五六七八九零";
private Color startColor = Color.RED;
private Color endColor = Color.BLUE;
public TextChangePane() {
timer = new Timer(30, this);
timer.setInitialDelay(1000);
startTime = 1000 + System.nanoTime() / 1000000;
timer.start();
}
@Override
protected void paintComponent(Graphics g) {
float[] fractions = {0.f, move, move + 0.0001f, 1.f};
Color[] colors = {startColor, startColor, endColor, endColor};
FontMetrics metrics = g.getFontMetrics();
int length = metrics.stringWidth(text);
LinearGradientPaint paint = new LinearGradientPaint(0, 0, length, 0, fractions, colors);
Graphics2D g2d = (Graphics2D) g;
g2d.setPaint(paint);
g2d.drawString(text, 0, 20);
}
@Override
public void actionPerformed(ActionEvent e) {
nowTime = System.nanoTime() / 1000000;
long moveTime = nowTime - startTime;
if (moveTime > CYCLE_TIME) {
timer.stop();
}
move = (float)moveTime / (float)CYCLE_TIME;
if (move < 0.0001f) {
move = 0.0001f;
}
if (move > 0.9998f) {
move = 0.9998f;
}
repaint();
}
/* 测试用方法 */
private static void createAndShowGUI() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
frame.add(new TextChangePane());
frame.setVisible(true);
}
/* 测试用方法 */
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
}
java 歌词_请问吧内有大神用JAVA做过桌面歌词吗相关推荐
- matlab神经网络 时间序列,请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?请教一下该神经网络的预测问题 我用网上的一个案例:知道2015年降雨我要预测该年水位.用往年 ...
- matlab narxnet,请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?请教一下该神经网络的预测问题 我用网上的一个案例:知道2015年降雨我要预测该年水位.用往年 ...
- 移动硬盘设置java变量_移动硬盘Linux内搭建MyEcilipse8.6开发环境
还是在去年的时候,买了一个西数WD 3200BEV的320GB移动硬盘,闲来没事瞎折腾,在移动硬盘上安装了个Linux系统,在我的台式机和朋友的笔记本上运行成功,现在已经安装好了MyEcilipse8 ...
- aix系统java堆_浅谈AIX环境下的Java性能调优
1.什么是Java Java 是一种面向对象的编程语言.它以 C++ 为模型,被设计成小的.简单的.在源和二进制级别跨平台的可移植的语言,Java 程序(applets 和应用程序)可以运行于任何已经 ...
- 和java通信_[源码和文档分享]基于JAVA的即时通信软件
一.设计任务书 1.1 设计任务 本文设计的是一个简单的即时通信软件,利用 Java Socket 进行点到点通信,其工作机制模仿即时通信软件的基本功能,已实现的功能有:客户端登录 客户端退出 群组成 ...
- 修改远程桌面端口_花生壳(内网穿透)服务做远程桌面登录
很多小伙伴在休假时偶尔需要远程处理公司文件,然而公司的路由器我们一般接触不到,也不方便擅自修改配置.好消息,现在花生壳(内网穿透)服务不需要在路由器上设置端口映射啦.下面来看B哥如何通过花生壳(内网穿 ...
- java 分析java死锁_有益的CountDownLatch和棘手的Java死锁
java 分析java死锁 您是否曾经使用过java.util.concurrent.CountDownLatch ? 这是在两个或多个线程之间实现同步的非常方便的类,在该类中,一个或多个线程可以等待 ...
- 安装java环境_(一)环境安装之Java
安装java 点击 JDK8下载,根据自己的平台,选择相应的版本进行下载. 小知识: Java环境分JDK和JRE ,JDK就是Java Development Kit.简单的说JDK是面向开发人员使 ...
- cmd编译java命令_使用CMD命令编译和运行Java程序
对于初学者来说,使用CMD命令(Unix以及类Unix系统采用Termial)来编译和运行Java的好处是让初学者直观地体会到编译(Compile)这一步骤,加深记忆.所谓编译就是将文本文件xxx.j ...
最新文章
- 易传媒CTO程华奕:搭建私有DMP 你必须知道的几件事
- 网站推广专员浅析网站推广期间如何降低网站优化短板威胁?
- php怎么四舍五入,php 四舍五入的三种实现方法
- MongoDB 4.2 正式发布,支持分布式事务!
- OpenCV使用MSER检测末端区域的实例(附完整代码)
- 项目常用的PHP代码
- NIO学习--缓冲区
- 【LeetCode笔记】112 113. 路径总和 I II(Java、递归、DFS)
- 编译安装imagick出错:make: *** [imagick_class.lo] Error 1
- ubuntu16.04使用ipv6
- cesium +vue项目怎么运行
- VC6.0+番茄助手安装教程
- windows怎么删除服务, OpenService 失败 5,拒绝访问解决
- Android 强制设置应用横屏或竖屏
- 博客优化、收录、RSS技巧
- Snaker的回退流程源码分析
- IDEA显示树状目录结构
- 部门月度例会的一些创新,让会议参与者不再那么沉闷枯燥
- oracle账号共享,登陆后可下载mysql和jdk
- 大数据技术高频面试题汇总
热门文章
- codeforces 617A-C语言解题报告
- 英特尔预计5年内将成智能手机芯片大厂
- 职场新人的入门法则:少想、多做、立即执行!
- Eclipse GCC 入门
- JDK和CGLIB动态代理区别
- node 安装 webpack
- 基于Sql Server 2008的分布式数据库的实践
- 开博第一篇,聊聊 最基本的 “==” 与 “===”区别
- Juqery Html(),append()等方法的Bug
- 白云山脚下的廉价菜-饮胜酒家