1 package org.columba.core.gui.base; 17 18 import java.awt.Color ; 19 import java.awt.Cursor ; 20 import java.awt.Graphics ; 21 import java.awt.Rectangle ; 22 import java.awt.event.ActionListener ; 23 import java.awt.event.MouseEvent ; 24 import java.awt.event.MouseListener ; 25 26 import javax.swing.JLabel ; 27 28 29 37 public class LinkLabel extends JLabel implements MouseListener { 38 boolean entered = false; 39 boolean mousehover; 40 ActionListener actionListener = null; 41 42 public LinkLabel(String s) { 43 super(s); 44 45 addMouseListener(this); 46 47 setForeground(Color.blue); 49 50 mousehover = false; 51 } 52 53 public void mouseClicked(MouseEvent e) { 54 } 55 56 public void mouseEntered(MouseEvent e) { 57 setCursor(new Cursor (Cursor.HAND_CURSOR)); 58 entered = true; 59 60 if (mousehover) { 61 repaint(); 62 } 63 } 64 65 public void mouseExited(MouseEvent e) { 66 setCursor(new Cursor (Cursor.DEFAULT_CURSOR)); 67 entered = false; 68 69 if (mousehover) { 70 repaint(); 71 } 72 } 73 74 public void mousePressed(MouseEvent e) { 75 } 76 77 public void mouseReleased(MouseEvent e) { 78 } 79 80 public void paint(Graphics g) { 81 super.paint(g); 82 83 if (entered || !mousehover) { 84 Rectangle r = g.getClipBounds(); 85 86 g.drawLine(0, 87 r.height - this.getFontMetrics(this.getFont()).getDescent(), 88 this.getFontMetrics(this.getFont()).stringWidth(this.getText()), 89 r.height - this.getFontMetrics(this.getFont()).getDescent()); 90 } 91 } 92 } 93 | Popular Tags |