importjava.awt.Color;importjava.awt.Cursor;importjava.awt.Desktop;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.io.IOException;importjava.net.MalformedURLException;importjava.net.URISyntaxException;importjava.net.URL;importjavax.swing.JLabel;/***
* 超链接文本标签类
*@authorliuxing
**/
public class LinkLabel extendsJLabel {private static final long serialVersionUID = 1L;/**超链接显示的文字*/
privateString text;/**保存连接*/
private URL link = null;/**保存标签的默认颜色*/
private Color preColor = null;/*** 构造一个超链接 *@paramvText 显示的文字 *@paramvLink 连接地址*/
publicLinkLabel(String vText, String vLink) {super("" + vText + "");this.text =vText;try{if (!vLink.startsWith("http://"))
vLink= "http://" +vLink;this.link = newURL(vLink);
}catch(MalformedURLException err) {
err.printStackTrace();
}this.addMouseListener(newMouseAdapter() {
@Overridepublic voidmouseExited(MouseEvent e) {
LinkLabel.this.setCursor(Cursor
.getPredefinedCursor(Cursor.DEFAULT_CURSOR));if (preColor != null)
LinkLabel.this.setForeground(preColor);
LinkLabel.this.setText("" + text + "");
}
@Overridepublic voidmouseEntered(MouseEvent e) {
LinkLabel.this.setCursor(Cursor
.getPredefinedCursor(Cursor.HAND_CURSOR));
preColor= LinkLabel.this.getForeground();
LinkLabel.this.setForeground(Color.BLUE);
LinkLabel.this.setText("" + text + "");
}
@Overridepublic voidmouseClicked(MouseEvent e) {try{
Desktop.getDesktop().browse(link.toURI());
}catch(IOException err) {
err.printStackTrace();
}catch(URISyntaxException err) {
err.printStackTrace();
}
}
});
}
}