/* * SK's Minecraft Launcher * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors * Please see LICENSE.txt for license information. */ package com.skcraft.launcher.swing; import javax.swing.*; import javax.swing.border.Border; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class LinkButton extends JButton { private static final Color LINK_COLOR = Color.blue; private static final Border LINK_BORDER = BorderFactory.createEmptyBorder(0, 0, 1, 0); private static final Border HOVER_BORDER = BorderFactory.createMatteBorder(0, 0, 1, 0, LINK_COLOR); public LinkButton() { super(); setupLink(); } public LinkButton(Action a) { super(a); setupLink(); } public LinkButton(Icon icon) { super(icon); setupLink(); } public LinkButton(String text, Icon icon) { super(text, icon); setupLink(); } public LinkButton(String text) { super(text); setupLink(); } public void setupLink() { setBorder(LINK_BORDER); setForeground(LINK_COLOR); setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); setFocusPainted(false); setRequestFocusEnabled(false); setContentAreaFilled(false); addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { ((JComponent) e.getComponent()).setBorder(HOVER_BORDER); } @Override public void mouseReleased(MouseEvent e) { ((JComponent) e.getComponent()).setBorder(LINK_BORDER); } @Override public void mouseExited(MouseEvent e) { ((JComponent) e.getComponent()).setBorder(LINK_BORDER); } }); } }