Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Using Javaswing to realize the discoloration effect of desktop lyric font in music player

2025-01-16 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/03 Report--

This article introduces the knowledge of "using Javaswing to realize the discoloration effect of desktop lyric fonts in music players". In the operation of actual cases, many people will encounter such a dilemma, so let the editor lead you to learn how to deal with these situations. I hope you can read it carefully and be able to achieve something!

You can change the ratio of the two colors with the following code

StringTwoColor stc = new StringTwoColor (jl1, Color.RED, Color.gray, 0.8)

Of course, you can use only one word.

The following is the complete code that contains the test section:

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 display font JLabel * @ param C1 color 1 * @ param c2 color 2 * @ param ratio ratio of color 1 to color 2 * / public StringTwoColor (JLabel label, Color C1, Color c2, double ratio) {/ / get the width of the string (px displayed on the screen) FontMetrics metrics = label.getFontMetrics (label.getFont ()); int width = metrics.stringWidth (label.getText ()) Int height = metrics.getHeight (); height+=label.getFont (). GetSize (); / / construct a BufferedImage buffImg = new BufferedImage (width,height,BufferedImage.TYPE_4BYTE_ABGR) with specified size and type as one of the predefined image types; BufferedImage buffImg1 = new BufferedImage (width,height,BufferedImage.TYPE_4BYTE_ABGR); BufferedImage buffImg2 = new BufferedImage (width,height,BufferedImage.TYPE_4BYTE_ABGR); / / create a Graphics2D object Graphics2D G1 = buffImg1.createGraphics () through BufferedImage Graphics2D G2 = buffImg2.createGraphics (); / / set anti-aliasing g1.setRenderingHint (RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint (RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); / / set font g1.setFont (label.getFont ()); g2.setFont (label.getFont ()); / / set color g1.setColor (C1); g2.setColor (c2) / draw the string g1.drawString (label.getText (), 0, height-label.getFont (). GetSize ()); g2.drawString (label.getText (), 0, height-label.getFont (). GetSize ()); / / proportionally clear the relevant pixels if (ratio0) {int rgb = 0x00000000; / / clear buffImg1 for (int, y, rgb) {buffImg1.setRGB (x, y, rgb) {buffImg1.setRGB (x, y, rgb);} / clear buffImg2 for (int

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report