如何在Java中打开网页?
有没有一种简单的方法可以在GUI的JPanel中打开网页?
如果没有,如何使用计算机的默认 Web 浏览器打开网页?
我希望我能用不到20行代码做一些事情,最多需要创建一个类。虽然没有理由20,只是希望代码很少...
我打算打开一个指南来玩游戏。该指南是在线的,有多个页面,但这些页面相互链接,所以我希望我只需要用我的代码调用一个URL。
有没有一种简单的方法可以在GUI的JPanel中打开网页?
如果没有,如何使用计算机的默认 Web 浏览器打开网页?
我希望我能用不到20行代码做一些事情,最多需要创建一个类。虽然没有理由20,只是希望代码很少...
我打算打开一个指南来玩游戏。该指南是在线的,有多个页面,但这些页面相互链接,所以我希望我只需要用我的代码调用一个URL。
使用默认的 Web 浏览器打开网页非常简单:
java.awt.Desktop.getDesktop().browse(theURI);
嵌入浏览器并不容易。 有一些HTML功能(如果我没记错的话),但它非常有限,不适合通用浏览器。JEditorPane
据我所知,有两种标准方式:
JEditorPane
组件桌面
。getDesktop()
.browse(URI)
以打开用户的默认浏览器(Java 6 或更高版本)
很快,还将有第三个:
JWebPane
组件,显然尚未发布JEditorPane
非常简陋;它不处理CSS或JavaScript,你甚至必须自己处理超链接。但是,您可以比启动FireFox更无缝地将其嵌入到应用程序中。
下面是如何使用超链接的示例(假设您的文档不使用框架):
// ... initialize myEditorPane
myEditorPane.setEditable(false); // to allow it to generate HyperlinkEvents
myEditorPane.addHyperlinkListener(new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ENTERED) {
myEditorPane.setToolTipText(e.getDescription());
} else if (e.getEventType() == HyperlinkEvent.EventType.EXITED) {
myEditorPane.setToolTipText(null);
} else if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
try {
myEditorPane.setPage(e.getURL());
} catch (IOException ex) {
// handle error
ex.printStackTrace();
}
}
}
});