package org.chartsy.chatsy.chat.component; import java.awt.Color; import java.awt.Cursor; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.Insets; import javax.swing.Action; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.SwingConstants; import org.openide.util.ImageUtilities; public class RolloverButton extends JButton { public RolloverButton() { decorate(); } public RolloverButton(String text) { super(text); decorate(); } public RolloverButton(Action action) { super(action); decorate(); } public RolloverButton(Icon icon) { super(icon); decorate(); } public RolloverButton(String text, Icon icon) { super(text, icon); decorate(); } private void decorate() { 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(false); setContentAreaFilled(false); setMargin(new Insets(6, 6, 6, 6)); setForeground(Color.decode("0x111111")); setFont(new Font("Dialog", Font.BOLD, 14)); setPreferredSize(new Dimension(27, 28)); } @Override protected void paintComponent(Graphics g) { Image image = ImageUtilities.loadImage("org/chartsy/chatsy/resources/tbtn-bg.png", true); if (image != null) g.drawImage(image, 0, 0, this); super.paintComponent(g); } @Override public Dimension getPreferredSize() { return new Dimension(27, 28); } }