package com.quiltplayer.view.swing.panels.utility; import java.awt.AlphaComposite; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import javax.swing.JPanel; import javax.swing.JTextArea; import net.miginfocom.swing.MigLayout; import org.springframework.stereotype.Component; import com.quiltplayer.properties.Configuration; import com.quiltplayer.view.swing.ColorConstantsDark; import com.quiltplayer.view.swing.FontFactory; import com.quiltplayer.view.swing.util.MigProperties; /** * Display the lyrics of the playing song. * * @author Vlado Palczynski * */ @Component public class LyricsUtilityPanel extends JPanel { private static final long serialVersionUID = 1L; private JTextArea lyricsArea; public LyricsUtilityPanel() { super(new MigLayout("ins 0.2cm , fill, center, w " + MigProperties.LYRICS_PANEL_WIDTH + "cm!")); setOpaque(true); setBackground(ColorConstantsDark.PLAYLIST_BACKGROUND); setupTextArea(); } private void setupTextArea() { lyricsArea = new JTextArea(); lyricsArea.setOpaque(false); lyricsArea.setForeground(ColorConstantsDark.PLAYLIST_LYRICS_COLOR); lyricsArea.setText("No lyrics..."); lyricsArea.setCaretPosition(0); lyricsArea.setFont(FontFactory.getFont(13f)); lyricsArea.setEditable(false); lyricsArea.setLineWrap(true); lyricsArea.setFocusable(false); lyricsArea.setWrapStyleWord(true); lyricsArea.setDoubleBuffered(Configuration.getInstance().getUiProperties().isDoubleBuffer()); add(lyricsArea, "w 100%"); } /** * @param lyrics * the lyrics to set */ public final void setLyrics(String lyrics) { lyricsArea.setText(lyrics); lyricsArea.setLocation(0, 0); updateUI(); } /* * (non-Javadoc) * * @see javax.swing.JComponent#paint(java.awt.Graphics) */ @Override public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.75f)); super.paintComponent(g); } }