2008年6月26日星期四

Java的超链接处理问题

最近为了这个Blog可谓麻烦死某熊……恩,今天写点有用的内容。
我们知道JEditPanel是支持HTML排版的,而HTML一个很重要的特性就是超链接,那么怎么在程序中处理那些超链接呢?答案是使用javax.swing.event.HyperlinkListener。这个监听器在超链接被触发时调用(例如鼠标进入,鼠标离开和点击)。集体的用法可以在JavaDOC中查到,这里就给出一个示例代码,这个函数返回的监听器将在外部浏览器打开指定的链接,链接必须包括http://

public HyperlinkListener createHyperLinkListener() {
return new HyperlinkListener() {

public void hyperlinkUpdate(HyperlinkEvent e) {
System.out.println(e);
if (e.getEventType() == HyperlinkEvent.EventType.ENTERED) {
((JEditorPane) e.getSource()).setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
} else if (e.getEventType() == HyperlinkEvent.EventType.EXITED) {
((JEditorPane) e.getSource()).setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
} else if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
try {
Desktop.getDesktop().browse(e.getURL().toURI());
} catch (Exception ex) {
Logger.getLogger(HTMLServerMessagePanel.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
};
}

1 条评论: