其实非常简单,懒得多做说明了,直接上代码:
import java.awt.Desktop;
import java.net.URL;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
public class QQNews extends JFrame {
private JEditorPane newsPane;
private String newsURL = "http://m.baidu.com";
public QQNews() {
try {
newsPane = new JEditorPane(new URL(newsURL));
} catch (Exception e) {
e.printStackTrace();
}
newsPane.addHyperlinkListener(new HyperlinkListener() {
@Override
public void hyperlinkUpdate(HyperlinkEvent e) {
if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
Desktop browser = Desktop.getDesktop();
try {
browser.browse(e.getURL().toURI());
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
});
newsPane.setEditable(false);
add(newsPane);
setSize(600, 550);
setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new QQNews();
}
});
}
}
参考资料: Java核心技术卷II,高级Swing一章,文本构件/用JEditorPane显示HTML一节。
缺 陷: 不支持CSS样式和JavaScript,貌似Flash之类的也不支持。
扩 展: 如果你能想办法让它支持CSS样式和JavaScript等功能,那么你就可以做出像腾讯迷你首页那样的效果了。甚至可以基于此实现一个浏览器。