利用Javaswing实现音乐播放器桌面歌词字体变色效果
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本篇内容介绍了"利用Javaswing实现音乐播放器桌面歌词字体变色效果"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2025年01月22日利用Javaswing实现音乐播放器桌面歌词字体变色效果
本篇内容介绍了"利用Javaswing实现音乐播放器桌面歌词字体变色效果"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
可以通过以下代码更改两种颜色的比值
StringTwoColor stc = new StringTwoColor(jl1, Color.RED, Color.gray, 0.8);//0.8为比值
当然,也可以只使用一个字
以下是包含测试部分的完整代码:
import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.FontMetrics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.RenderingHints;import java.awt.image.BufferedImage; import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel; public class StringTwoColor{ private BufferedImage buffImg; /** * @param label 显示字体的JLabel * @param c1 颜色1 * @param c2 颜色2 * @param ratio 颜色1与颜色2所占部分的比值 */ public StringTwoColor(JLabel label, Color c1, Color c2, double ratio){ //获取字符串的宽(显示在屏幕上所占的像素px) FontMetrics metrics = label.getFontMetrics(label.getFont()); int width = metrics.stringWidth(label.getText()); int height = metrics.getHeight(); height+=label.getFont().getSize(); //构造一个具有指定尺寸及类型为预定义图像类型之一的 BufferedImage buffImg = new BufferedImage(width,height,BufferedImage.TYPE_4BYTE_ABGR); BufferedImage buffImg1 = new BufferedImage(width,height,BufferedImage.TYPE_4BYTE_ABGR); BufferedImage buffImg2 = new BufferedImage(width,height,BufferedImage.TYPE_4BYTE_ABGR); //通过BufferedImage创建一个 Graphics2D对象 Graphics2D g1 = buffImg1.createGraphics(); Graphics2D g2 = buffImg2.createGraphics(); //设置抗锯齿 g1.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); //设置字体 g1.setFont(label.getFont()); g2.setFont(label.getFont()); //设置颜色 g1.setColor(c1); g2.setColor(c2); //画字符串 g1.drawString(label.getText(), 0, height-label.getFont().getSize()); g2.drawString(label.getText(), 0, height-label.getFont().getSize()); //按照比例清除相关的像素点 if(ratio<1 && ratio>0){ int rgb = 0x00000000; //清除buffImg1 for(int y=0;y=width*ratio;x--){ buffImg1.setRGB(x, y, rgb); } } //清除buffImg2 for(int y=0;y =width*ratio;x--){ buffImg.setRGB(x,y,buffImg2.getRGB(x, y)); } } } } /** * 获取处理完的ImageIcon * @return */ public ImageIcon getImageIcon(){ Image img = buffImg; ImageIcon imgIcon = new ImageIcon(img); return imgIcon; } public static void main(String[] args) { JFrame jf = new JFrame(); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setSize(300, 200); jf.setLocationRelativeTo(null); jf.setLayout(new BorderLayout()); JLabel jl1 = new JLabel("梦"); //JLabel jl1 = new JLabel("梦里梦到醒不来的梦"); jl1.setFont(new Font("幼圆",Font.PLAIN,30)); StringTwoColor stc = new StringTwoColor(jl1, Color.RED, Color.gray, 0.7); //获取处理完的图片并显示 JLabel jl2 = new JLabel(stc.getImageIcon()); jf.add(jl2, BorderLayout.CENTER); jf.setVisible(true); } }
"利用Javaswing实现音乐播放器桌面歌词字体变色效果"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
颜色
字体
比值
播放器
效果
桌面
歌词
音乐
变色
代码
像素
内容
字符
字符串
更多
知识
类型
部分
处理
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
希梦网络技术有限公司招聘
v2ray怎么链接服务器
天津技术软件开发现价
智能巡检软件开发价钱
海南酷炫网络技术公司
网络安全和信息化演练
政府部门国家网络安全宣传周
数据库中怎么创建参数查询
数据库专业par法则
易语言删除数据库
2022nba数据库
数据库配置0718
数据库随机选取多条数据
sql 恢复数据库
ios软件开发怎么赚钱吗
数据库技术是大数据技术吗
数据库什么是变量名和变量值
直播没有创建者服务器
大华 网络安全
数据库int类型为空
网络安全可以在二线城市工作
网络安全工程学啥
网络安全警告标志图片大全
简单一点的软件开发工具
云南中国数据库技术大会
搞软件开发的男生要掉发吗
广州网络技术员培训班
文献检索的中文英文数据库有哪些
河北前端软件开发哪家可靠
网络安全优秀案例分析