package org.chartsy.chatsy.chat.component; import org.chartsy.chatsy.chat.util.FontLoader; import java.awt.Color; import java.awt.Cursor; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import javax.swing.Action; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.SwingConstants; /** * * @author Viorel */ public class ChatButton extends JButton { private static final String ICON = "/org/chartsy/chatsy/resources/btn.png"; private static final String ICON_HOVER = "/org/chartsy/chatsy/resources/btnh.png"; public ChatButton() { super(); initComponent(); } public ChatButton(String text) { super(text); initComponent(); } public ChatButton(Icon icon) { super(icon); initComponent(); } public ChatButton(Action action) { super(action); initComponent(); } public ChatButton(String text, Icon icon) { super(text, icon); initComponent(); } private void initComponent() { setOpaque(false); setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); setHorizontalAlignment(SwingConstants.CENTER); setHorizontalTextPosition(SwingConstants.CENTER); setVerticalAlignment(SwingConstants.CENTER); setVerticalTextPosition(SwingConstants.CENTER); setFocusable(true); setBorderPainted(false); setFocusPainted(false); setRolloverEnabled(true); setContentAreaFilled(false); setIcon(new ImageIcon(getClass().getResource(ICON))); setRolloverIcon(new ImageIcon(getClass().getResource(ICON_HOVER))); setForeground(Color.decode("0x111111")); setFont(FontLoader.getDroidFont(Font.PLAIN, 14)); setPreferredSize(new Dimension(149, 44)); } protected void paintComponent(Graphics g) { Graphics2D graphics2D = (Graphics2D) g; graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graphics2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); graphics2D.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); super.paintComponent(graphics2D); } public Dimension getPreferredSize() { return new Dimension(149, 44); } }