利用Javaswing实现音乐播放器桌面歌词字体变色效果
发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,本篇内容介绍了"利用Javaswing实现音乐播放器桌面歌词字体变色效果"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2025年02月16日利用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安全错误
数据库的锁怎样保障安全
嵌入式软件开发口碑佳
迪拜软件开发商怎么样
怎么打开软件存在电脑的数据库
国内软件开发学校
君临天下全球大战服务器版
联想服务器授权
没有网络能连接数据库吗
中小学网络安全心得体会
网络安全密钥手机在哪里找
web前端 怎么连数据库
数据库日志审计厂家
满洲里市网络安全宣传
hp服务器raid卡图片
大兴区通用软件开发配置
网络安全月考试卷
广州创梦星空网络技术有限公司
北京财务软件开发服务费
民法典网络安全法律
高考数据库分类
微信支付后写入数据库
数据库算百分比
网络安全知识或防护技能
ftp上传文件到服务器端口
软件开发企业环境评价
游戏服务器无法进入
网络安全公安联考有优势吗
数据库 虚拟表
游族网络技术人员
mysql数据库应用项目
德宿互联网科技有限公司