0

我正在使用 JEditorPane 创建一个非常基本的 Web 浏览器,只是为了自学 Java 中的 Swing 和 GUI,但是在实现类似 Firefox 的 Google 搜索栏时遇到了麻烦。

如果这是由于 JEditorPane 的限制或我缺乏理解,我不是,但如果我尝试将输入到“Google 搜索”栏中的字符串并使用 JEditorPane 的 setPage() 方法,它就不起作用。

这是我的“Google Search”按钮的 ActionListener 代码:

public void actionPerformed(ActionEvent arg0) 
{
    try
    {
        content.setPage("http://www.google.com/search?q=" + searchBar.getText());
    }
    catch (IOException e) 
    {
        JOptionPane.showMessageDialog(frame, "Error searching for: " + searchBar.getText());
    }
}

即使我尝试只做 content.setPage(" http://www.google.com/search?p=test "); 它不起作用,那么它与 setPage() 获取 URL 字符串的方式有关吗?因为它不喜欢“?” 或“=”字符还是有另一种方法可以一起完成?

谢谢你的时间,

英菲尼迪菲兹

4

4 回答 4

1

添加一些内容以打印您捕获的异常,您会看到您收到来自 Google 的 403 Forbidden

那里有很多 Java 机器人,并且网站已经开始阻止在 User-agent 字段中使用“java”的请求。谷歌会让你得到他们的主页,但不会让你搜索,除非你覆盖用户代理字段。

-Dhttp.agent=myappname/1.0使用myappname是应用程序的名称来启动jvm 。

于 2010-04-30T19:50:34.290 回答
0

即使是最简单的浏览器,JEditorPane 也是一个糟糕的选择。它可以显示简单的 HTML 页面,但它停在那里。

试试飞碟项目,它工作得很好(它不是一个完整的浏览器,但足够接近)。他们有一个实际模拟网络浏览器的示例。

于 2009-12-03T20:15:53.323 回答
0

就像 adrian.tarau 所说,JEditorPane 在显示现代网页方面很差。
它甚至不支持 HTML 4 或 Javascript。我相信谷歌使用 Javascript 来使搜索按钮工作。

另一个建议是使用 Lobo Browser/ Cobra 引擎

于 2009-12-03T20:20:53.830 回答
0

如果您需要一个完整的 Java 浏览器,请查看 Lobo: http: //lobobrowser.org/java-browser.jsp

于 2009-12-03T20:26:21.900 回答