Рендеринг HTML-страницы с использованием API кобры в веб-браузере на основе Java, сделанные мной

API-интерфейс КОБРЫ запрашивает InputStream и uri в качестве входных данных для разбора, но я не могу использовать его метод parse(). В случае, если мы используем метод, указанный ниже, генерируется исключение тайм-аута соединения. Что делать, чтобы использовать этот API для успешно визуализировать и отобразить веб-страницу в веб-браузере, который я создал в Java..?? Вот код:

 private void createNewTab() throws Exception{
     //JPanel panel=new JPanel(new BorderLayout());
    HtmlPanel panel = new HtmlPanel();
    WebBrowserPane browserPane = new WebBrowserPane();
    WebToolBar toolBar = new WebToolBar(browserPane);
    //panel.add(toolBar, BorderLayout.NORTH);
    //panel.add(new JScrollPane(browserPane), BorderLayout.CENTER);
    UserAgentContext ucontext = new SimpleUserAgentContext();
    SimpleHtmlRendererContext rcontext = new SimpleHtmlRendererContext(panel, ucontext);
    // Note that document builder should receive both contexts.
    DocumentBuilderImpl dbi = new DocumentBuilderImpl(ucontext, rcontext);
    // A documentURI should be provided to resolve relative URIs.
 // Open a connection on the URL we want to render first.
        String uri = "http://lobobrowser.org/browser/home.jsp";
        URL url = new URL(uri);
        URLConnection connection = url.openConnection();
        connection.connect();
        InputStream in = connection.getInputStream();

        // A Reader should be created with the correct charset,
        // which may be obtained from the Content-Type header
        // of an HTTP response.
        Reader reader = new InputStreamReader(in);


    Document document = dbi.parse(new InputSourceImpl(reader, uri));
    // Now set document in panel. This is what causes the document to render.
    panel.setDocument(document, rcontext);

    tabbedPane.addTab("Browser " + tabbedPane.getTabCount(), panel);
  }

  private class NewTabAction extends AbstractAction {

    public NewTabAction() {
      putValue(Action.NAME, "New Browser Tab");
      putValue(Action.SHORT_DESCRIPTION, "Create New Web Browser Tab");
      putValue(Action.MNEMONIC_KEY, new Integer('N'));
    }

    public void actionPerformed(ActionEvent event) {
     try{ createNewTab();} catch(Exception e){e.printStackTrace();}
    }
  }

  private class ExitAction extends AbstractAction {
    public ExitAction() {
      putValue(Action.NAME, "Exit");
      putValue(Action.SHORT_DESCRIPTION, "Exit Application");
      putValue(Action.MNEMONIC_KEY, new Integer('x'));
    }

    public void actionPerformed(ActionEvent event) {
      System.exit(0);
    }
  }

  public static void main(String args[]) {
    TabbedPaneWebBrowser browser = new TabbedPaneWebBrowser();
    browser.setDefaultCloseOperation(EXIT_ON_CLOSE);
    browser.setSize(640, 480);
    browser.setVisible(true);
  }
}

Приведенный выше фрагмент относится к методу createnewTab() моего браузера, который должен открыть веб-страницу в новой вкладке этого браузера.

0 ответов

Другие вопросы по тегам