繁体   English   中英

您如何用Java打开网页?

[英]How do you open web pages in Java?

有没有一种简单的方法可以在GUI的JPanel中打开网页?

如果没有,如何使用计算机的默认Web浏览器打开网页?

我希望可以用不到20行代码完成一些工作,并且最多需要创建一个类。 不过没有理由20,只是希望很少的代码...

我打算打开一个指南来玩游戏。 该指南在线,有多个页面,但是这些页面相互链接,因此我希望只用我的代码调用一个URL。

使用默认的网络浏览器打开网页很容易:

java.awt.Desktop.getDesktop().browse(theURI);

嵌入浏览器并非易事。 JEditorPane具有一些 HTML功能(如果我正确地记住了我有限的Swing知识),但是它非常有限并且不适合通用浏览器。

我知道两种标准方法:

  1. 标准的JEditorPane组件
  2. Desktop getDesktop() browse(URI)以打开用户的默认浏览器(Java 6或更高版本)

    很快,还会有第三个:

  3. JWebPane组件,显然尚未发布

JEditorPane非常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();
            }
        }
    }
});

如果要开发小程序,则可以使用AppletContext.showDocument 那将是单线的:

getAppletContext().showDocument("http://example.com", "_blank");

如果您正在开发桌面应用程序,则可以尝试使用Bare Bones Browser Launch

根本没有尝试过,但是lobo浏览器(纯Java语言编写的浏览器)中的眼镜蛇HTML解析器和查看 可能就是您想要的。 他们提供了示例代码来设置在线html查看器:

import javax.swing.*;
import org.lobobrowser.html.gui.*;
import org.lobobrowser.html.test.*;

public class BareMinimumTest {
  public static void main(String[] args) throws Exception {
    JFrame window = new JFrame();
    HtmlPanel panel = new HtmlPanel();
    window.getContentPane().add(panel);
    window.setSize(600, 400);
    window.setVisible(true);
    new SimpleHtmlRendererContext(panel, new SimpleUserAgentContext())
    .navigate("http://lobobrowser.org/browser/home.jsp");
  }
}

我不知道是否存在这样的内置函数 ,但是我会将Runtime类的exec与iexplore.exe或firefox.exe用作参数。

请尝试以下代码:

import java.awt.Desktop;
import java.net.URI;
import java.net.URISyntaxExaception;

//below is the code
//whatvever the url is it has to have https://

Desktop d = Desktop.getDesktop();
try {
    d.browse(new URI("http://google.com"));
} catch (IOException | URISyntaxException e2) {
    e2.printStackTrace();
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM