Swing Components Java

/**
 * @(#)HyperlinkLabel.java
 */
//package aurora.util;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.*;
/**
 * Implementation of 
 * @author Alex Kurzhanskiy
 * @version $Id: HyperlinkLabel.java 38 2010-02-08 22:59:00Z akurzhan $
 */
public class HyperlinkLabel extends JLabel implements MouseListener {
  private static final long serialVersionUID = 5167616594614061634L;
  
  private URL url = null;
  
  
  public HyperlinkLabel(String label){
    super(label);
    addMouseListener(this);
  }
  public HyperlinkLabel(String label, URL url){
    this(label);
    this.url = url;
    setText("" + label + "");
    setToolTipText("Go to: " + url.getRef());
  }
  public HyperlinkLabel(String label, String tip, URL url){
    this(label, url);
    setToolTipText(tip);
  }
  
  
  public void setURL(URL url){ this.url = url; }
  
  public URL getURL(){ return url; }
  public void mouseClicked(MouseEvent e) {
    HyperlinkLabel self = (HyperlinkLabel) e.getSource();
    if(self.url == null)
      return;
    if (Desktop.isDesktopSupported()) {
      Desktop desktop = Desktop.getDesktop();
      if (desktop.isSupported(Desktop.Action.BROWSE))
        try{
          desktop.browse(url.toURI());
          return;
        }
      catch(Exception exp){ }
    }
    JOptionPane.showMessageDialog(this, "Cannot launch browser...\n Please, visit\n" + url.getRef() , "", JOptionPane.INFORMATION_MESSAGE);
    return;
  }
  public void mouseEntered(MouseEvent e) {
    e.getComponent().setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
    return;
  }
  public void mouseExited(MouseEvent e) {
    // TODO Auto-generated method stub
    return;
  }
  public void mousePressed(MouseEvent e) {
    // TODO Auto-generated method stub
    return;
  }
  public void mouseReleased(MouseEvent e) {
    // TODO Auto-generated method stub
    return;
  }
  
}