Mega Code Archive

 
Categories / Java Tutorial / Swing
 

URL Label

//The contents of this file are subject to the Mozilla Public License Version 1.1 //(the "License"); you may not use this file except in compliance with the  //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ // //Software distributed under the License is distributed on an "AS IS" basis, //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License  //for the specific language governing rights and //limitations under the License. // //The Original Code is "The Columba Project" // //The Initial Developers of the Original Code are Frederik Dietz and Timo Stich. //Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.  // //All Rights Reserved. import java.awt.Color; import java.awt.Cursor; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.event.MouseEvent; import java.net.URL; import javax.swing.JLabel; public class URLLabel extends JLabel {   boolean entered = false;   boolean mousehover;   public URLLabel(URL url) {     this(url, url.toString());   }   public URLLabel(URL url, String str) {     super(str);     setForeground(Color.blue);     mousehover = false;   }   public void mouseEntered(MouseEvent e) {     setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));     entered = true;     if (mousehover) {       repaint();     }   }   public void mouseExited(MouseEvent e) {     setCursor(Cursor.getDefaultCursor());     entered = false;     if (mousehover) {       repaint();     }   }   public void mousePressed(MouseEvent e) {   }   public void mouseReleased(MouseEvent e) {   }   public void paint(Graphics g) {     super.paint(g);     if (entered || !mousehover) {       Rectangle r = g.getClipBounds();       g.drawLine(0, r.height - this.getFontMetrics(this.getFont()).getDescent(), this           .getFontMetrics(this.getFont()).stringWidth(this.getText()), r.height           - this.getFontMetrics(this.getFont()).getDescent());     }   } }