Adding OpenWindowListener : Browser « SWT « Java Tutorial

Browser conventions allow spawning new browser windows. Things that can trigger a new browser window include the following:

  1. The user right-clicks a link and selects Open in New Window from the context menu (note that you must build this functionality yourself).
  2. The user holds down Shift while clicking a link.
  3. The user clicks a link that has a named target for which no browser currently exists.

When the user performs an action within the browser that spawns a new browser window, any OpenWindowListeners are first notified. OpenWindowListener declares one method:

public void open(WindowEvent event)

As with CloseWindowListener, the three WindowEvent fields (browser, location, and field) are null when passed to open(), and the widget field inherited from TypedEvent contains a reference to the current browser.

import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.browser.OpenWindowListener;
import org.eclipse.swt.browser.WindowEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class OpenWindowListenerUsing {
  public static void main(String[] args) {
    final Display display = new Display();
    Shell shell = new Shell(display);

    Browser browser = new Browser(shell, SWT.NONE);
    browser.setBounds(5, 5, 600, 600);

    browser.addOpenWindowListener(new OpenWindowListener() {
      public void open(WindowEvent event) {
        Shell shell = new Shell(display);
        shell.setText("New Window");
        shell.setLayout(new FillLayout());
        Browser browser = new Browser(shell, SWT.NONE);
        event.browser = browser;


    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())

17.86.1.Using Browser to load a websiteUsing Browser to load a website
17.86.2.Browser supports the following listeners:
17.86.3.Adding StatusTextListener to BrowserAdding StatusTextListener to Browser
17.86.4.Adding ProgressListener to BrowserAdding ProgressListener to Browser
17.86.5.Using ProgressBar to display the Browser progressUsing ProgressBar to display the Browser progress
17.86.6.Add LocationListener to Browser
17.86.7.Add CloseWindowListener to Browser
17.86.8.Adding VisibilityWindowListener
17.86.9.Adding OpenWindowListener
17.86.10.Adding TitleListener to Browser
17.86.11.Browser: bring up a browser (pop-up blocker)
17.86.12.Renderer HTML in memory
17.86.13.Browser: render HTML that includes relative links from memoryBrowser: render HTML that includes relative links from memory
17.86.14.Browser: modify DOM (executing javascript)Browser: modify DOM (executing javascript)
17.86.15.Browser: query DOM node valueBrowser: query DOM node value
17.86.16.Advanced BrowserAdvanced Browser